diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 414540a04..46021f4a8 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,8 +24,4 @@ jobs: pr_title: 'chore: ${{ env.MESSAGE }}' pr_body: | This pull request will ${{ env.MESSAGE }}. - - ## Dependencies before merge - - - [ ] https://github.com/inotia00/revanced-integrations pr_draft: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ce0e3f79b..84ac54421 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,10 +6,6 @@ on: branches: - main - dev - pull_request: - branches: - - main - - dev jobs: release: @@ -24,22 +20,30 @@ jobs: persist-credentials: false fetch-depth: 0 - - name: Cache Node modules - uses: actions/cache@v3 - with: - path: | - node_modules - key: npm-${{ hashFiles('package-lock.json') }} - - name: Cache Gradle uses: burrunan/gradle-cache-action@v1 - - name: Build with Gradle + - name: Build + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: ./gradlew generateMeta clean - - name: Setup semantic-release + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "lts/*" + cache: 'npm' + + - name: Install dependencies run: npm install + - name: Import GPG key + uses: crazy-max/ghaction-import-gpg@v6 + with: + gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} + passphrase: ${{ secrets.GPG_PASSPHRASE }} + fingerprint: ${{ env.GPG_FINGERPRINT }} + - name: Release env: GITHUB_TOKEN: ${{ secrets.REPOSITORY_PUSH_ACCESS }} diff --git a/.gitignore b/.gitignore index 8448060e5..49c9cf74f 100644 --- a/.gitignore +++ b/.gitignore @@ -125,3 +125,4 @@ node_modules/ # gradle properties, due to Github token ./gradle.properties .DS_Store +local.properties diff --git a/.releaserc b/.releaserc index 0e4fa8b8a..6193511b8 100644 --- a/.releaserc +++ b/.releaserc @@ -33,7 +33,7 @@ { "assets": [ { - "path": "build/libs/*.jar" + "path": "build/libs/revanced-patches*" }, { "path": "patches.json" diff --git a/CHANGELOG.md b/CHANGELOG.md index e69de29bb..d3b16df1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -0,0 +1,119 @@ +# [2.222.0-dev.10](https://github.com/anddea/revanced-patches/compare/v2.222.0-dev.9...v2.222.0-dev.10) (2024-03-23) + + +### Features + +* **YouTube - Translations:** Update `Italian` ([#123](https://github.com/anddea/revanced-patches/issues/123)) ([73fae53](https://github.com/anddea/revanced-patches/commit/73fae530cd31c630844a0ad2a079756604ef777d)) + +# [2.222.0-dev.9](https://github.com/anddea/revanced-patches/compare/v2.222.0-dev.8...v2.222.0-dev.9) (2024-03-23) + + +### Bug Fixes + +* **YouTube - Shorts overlay buttons:** Resize icons ([e348565](https://github.com/anddea/revanced-patches/commit/e348565caaa352e4004910d87e43fb612907ae21)) +* **YouTube - Translations:** Update translations info ([12982f4](https://github.com/anddea/revanced-patches/commit/12982f423660b3e9289d04bb0666249b737d2ee9)) +* **YouTube - Translations:** Update translations info ([25ce0a9](https://github.com/anddea/revanced-patches/commit/25ce0a988e2601bf4b61cbd5b1c85bd7f6951ddb)) + + +### Features + +* **YouTube - Translations:** Update `Italian` ([#115](https://github.com/anddea/revanced-patches/issues/115)) ([31218ed](https://github.com/anddea/revanced-patches/commit/31218ed20367504808ceb061d908f88696cfeafb)) +* **YouTube - Translations:** Update `Italian` ([#119](https://github.com/anddea/revanced-patches/issues/119)) ([148a03e](https://github.com/anddea/revanced-patches/commit/148a03e8d867484450fd141467673c3808ec0e12)) +* **YouTube - Translations:** Update `Japanese` ([#113](https://github.com/anddea/revanced-patches/issues/113)) ([8f2be3a](https://github.com/anddea/revanced-patches/commit/8f2be3af048df72146d81574515f1cd7650cc5df)) +* **YouTube - Translations:** Update `Korean` ([#116](https://github.com/anddea/revanced-patches/issues/116)) ([54516c1](https://github.com/anddea/revanced-patches/commit/54516c1275869cc589a93f3e0b8961c0cc040a48)) +* **YouTube - Translations:** Update `Korean` ([#120](https://github.com/anddea/revanced-patches/issues/120)) ([73e6139](https://github.com/anddea/revanced-patches/commit/73e61391df4a13e7cdbe7528154b624a12d8ebaa)) +* **YouTube - Translations:** Update `Spanish` ([#117](https://github.com/anddea/revanced-patches/issues/117)) ([18f5ac3](https://github.com/anddea/revanced-patches/commit/18f5ac3eb201f6493ff7467ef026c0b63c882df4)) +* **YT Music - Custom branding icon:** Add more options ([86ec325](https://github.com/anddea/revanced-patches/commit/86ec3250cdd5ad40837067923b1eb5ef69f4e37e)) + +# [2.222.0-dev.8](https://github.com/anddea/revanced-patches/compare/v2.222.0-dev.7...v2.222.0-dev.8) (2024-03-22) + + +### Bug Fixes + +* **YouTube - Translations:** Update translations info ([302ffd6](https://github.com/anddea/revanced-patches/commit/302ffd6b9d0f2b4b5f359dff5fcb769db290413f)) + + +### Features + +* **YouTube - Translations:** Update `Italian` ([#102](https://github.com/anddea/revanced-patches/issues/102)) ([580883c](https://github.com/anddea/revanced-patches/commit/580883cec8f46e3e0be25995abe575d69739fb2a)) +* **YouTube - Translations:** Update `Japanese` ([#107](https://github.com/anddea/revanced-patches/issues/107)) ([cc87b2d](https://github.com/anddea/revanced-patches/commit/cc87b2db4053adfa583ee75ce88f642e2804fc8c)) +* **YouTube - Translations:** Update `Korean` ([#108](https://github.com/anddea/revanced-patches/issues/108)) ([f29bfa5](https://github.com/anddea/revanced-patches/commit/f29bfa5cb8ed43ce66f3d9b3c1e5abfd74872461)) +* **YouTube:** Bump support version `19.11.38` ([#110](https://github.com/anddea/revanced-patches/issues/110)) ([99142d8](https://github.com/anddea/revanced-patches/commit/99142d89ca4d2e0735b130a504a4d4a394fde605)) +* **YT Music:** Bump new versions ([1fbaeef](https://github.com/anddea/revanced-patches/commit/1fbaeef5cf21ce8b914c8c4cf49a33f1e23abbd9)) + +# [2.222.0-dev.7](https://github.com/anddea/revanced-patches/compare/v2.222.0-dev.6...v2.222.0-dev.7) (2024-03-21) + + +### Bug Fixes + +* **YouTube - Translations:** Update translations info ([9babfd9](https://github.com/anddea/revanced-patches/commit/9babfd978e650742a52e5efa4d4189656ff5fdd5)) +* **YouTube:** Adjusting patches to apply correctly to earlier versions. ([#94](https://github.com/anddea/revanced-patches/issues/94)) ([cb02ba7](https://github.com/anddea/revanced-patches/commit/cb02ba71f5af061a17183540537966e9ccef9332)) + + +### Features + +* **YouTube - Hide layout components:** Add `Subscriptions` tab and `Comments` to `Keyword filter` ([bbc3217](https://github.com/anddea/revanced-patches/commit/bbc32170b6bf2d94f43ad4782fe27960fa4caf53)) +* **YouTube - Speed overlay:** Change the speed overlay icon and fix patch for applying to earlier versions ([#92](https://github.com/anddea/revanced-patches/issues/92)) ([d547cda](https://github.com/anddea/revanced-patches/commit/d547cda236fc6d97387e5e6422b3a3a787046a2c)) +* **YouTube - Translations:** Update `Japanese` ([#89](https://github.com/anddea/revanced-patches/issues/89)) ([f8b40f8](https://github.com/anddea/revanced-patches/commit/f8b40f81bdac3c1bd7e3d3fee94864b0da7656fd)) +* **YouTube - Translations:** Update `Russian` ([#95](https://github.com/anddea/revanced-patches/issues/95)) ([a00a7b6](https://github.com/anddea/revanced-patches/commit/a00a7b6646c0f75968d683dc224e437debbc1c8d)) +* **YouTube:** Bump support version `19.09.38` - `19.10.39` ([#96](https://github.com/anddea/revanced-patches/issues/96)) ([bd7cb77](https://github.com/anddea/revanced-patches/commit/bd7cb771d0529436b690428316ae89517a6ef435)) + +# [2.222.0-dev.6](https://github.com/anddea/revanced-patches/compare/v2.222.0-dev.5...v2.222.0-dev.6) (2024-03-19) + + +### Bug Fixes + +* **YouTube - Change player flyout panel toggles:** Fix for supported versions ([a9fe961](https://github.com/anddea/revanced-patches/commit/a9fe961d9c8a9bce66c2c42e37a55a592411b516)) +* **YouTube - Translations:** Update translations info ([56ad720](https://github.com/anddea/revanced-patches/commit/56ad7205e68ea875a0bef99312d99d1a8d4a2834)) + + +### Features + +* **YouTube - Translations:** Update `Korean` ([8b11f6a](https://github.com/anddea/revanced-patches/commit/8b11f6a698100b1e1d6ef83b0e6eccb36470ba35)) + +# [2.222.0-dev.5](https://github.com/anddea/revanced-patches/compare/v2.222.0-dev.4...v2.222.0-dev.5) (2024-03-19) + + +### Bug Fixes + +* **YouTube - Translations:** Update translations info ([17a514e](https://github.com/anddea/revanced-patches/commit/17a514ea90d921a269e957ab3cca1da5b742c26f)) + + +### Features + +* **YouTube - Translations:** Update `Brazillian Portuguese` ([#85](https://github.com/anddea/revanced-patches/issues/85)) ([12ee1e1](https://github.com/anddea/revanced-patches/commit/12ee1e18f03351e551f68c5e0099f7f73208a85e)) + +# [2.222.0-dev.4](https://github.com/anddea/revanced-patches/compare/v2.222.0-dev.3...v2.222.0-dev.4) (2024-03-18) + + +### Features + +* **YouTube - Translations:** Update `Ukrainian` ([ac81500](https://github.com/anddea/revanced-patches/commit/ac81500024cc0794cc52dc5c1da5367aeff45764)) + +# [2.222.0-dev.3](https://github.com/anddea/revanced-patches/compare/v2.222.0-dev.2...v2.222.0-dev.3) (2024-03-18) + + +### Bug Fixes + +* **YouTube - Translations:** Update translations info ([c30c031](https://github.com/anddea/revanced-patches/commit/c30c031efea8cf27fae23ad77c45fc4c278f7a94)) + + +### Features + +* **YouTube - Translations:** Update `Japanese` ([#81](https://github.com/anddea/revanced-patches/issues/81)) ([5191bbe](https://github.com/anddea/revanced-patches/commit/5191bbe6777e11b1d823cdeb004423583259a9e2)) +* **YouTube - Translations:** Update `Spanish` ([#79](https://github.com/anddea/revanced-patches/issues/79)) ([1c3731d](https://github.com/anddea/revanced-patches/commit/1c3731dc8c38b9233fb5fdca804560ff30c15c8b)) + +# [2.222.0-dev.2](https://github.com/anddea/revanced-patches/compare/v2.222.0-dev.1...v2.222.0-dev.2) (2024-03-18) + + +### Bug Fixes + +* **YouTube - Swipe controls:** Fix some strings ([074e3e4](https://github.com/anddea/revanced-patches/commit/074e3e419731c075ca9bffa73f43a256316c3684)) +* **YouTube/YT Music - Debugging:** Disable by default ([241b6dd](https://github.com/anddea/revanced-patches/commit/241b6dd8c53ee0bbbceaea363851933d11441be6)) + +# [2.222.0-dev.1](https://github.com/anddea/revanced-patches/compare/v2.221.1...v2.222.0-dev.1) (2024-03-17) + + +### Features + +* **YouTube - Translation:** Update `Italian` ([#73](https://github.com/anddea/revanced-patches/issues/73)) ([ee9f012](https://github.com/anddea/revanced-patches/commit/ee9f012e180acfd7d3ffedee37e3b73b2743295a)), closes [#71](https://github.com/anddea/revanced-patches/issues/71) diff --git a/README-template.md b/README-template.md index 40b2e8a90..032758ad4 100644 --- a/README-template.md +++ b/README-template.md @@ -51,7 +51,9 @@ Example: "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] } ], diff --git a/README.md b/README.md index 0d80a46a6..4d0c14b68 100644 --- a/README.md +++ b/README.md @@ -9,124 +9,124 @@ ReVanced Extended Patches. | 💊 Patch | 📜 Description | 🏹 Target Version | |:--------:|:--------------:|:-----------------:| -| `Add splash animation` | Adds old style splash animation. | 18.25.40 ~ 19.09.37 | -| `Alternative thumbnails` | Adds options to replace video thumbnails using the DeArrow API or image captures from the video. | 18.25.40 ~ 19.09.37 | -| `Ambient mode switch` | Adds an option to bypass the restrictions of ambient mode or disable it completely. | 18.25.40 ~ 19.09.37 | -| `Append time stamps information` | Adds an option to add the current video quality or playback speed in brackets next to the current time. | 18.25.40 ~ 19.09.37 | +| `Add splash animation` | Adds old style splash animation. | 18.25.40 ~ 19.11.38 | +| `Alternative thumbnails` | Adds options to replace video thumbnails using the DeArrow API or image captures from the video. | 18.25.40 ~ 19.11.38 | +| `Ambient mode switch` | Adds an option to bypass the restrictions of ambient mode or disable it completely. | 18.25.40 ~ 19.11.38 | +| `Append time stamps information` | Adds an option to add the current video quality or playback speed in brackets next to the current time. | 18.25.40 ~ 19.11.38 | | `Change player flyout panel toggles` | Adds an option to use text toggles instead of switch toggles within the additional settings menu. | 18.25.40 ~ 19.05.36 | -| `Change start page` | Adds an option to set which page the app opens in instead of the homepage. | 18.25.40 ~ 19.09.37 | -| `Custom branding heading` | Applies a custom heading in the top left corner within the app. | 18.25.40 ~ 19.09.37 | -| `Custom branding icon YouTube` | Change the YouTube launcher icon to the icon specified in options.json. | 18.25.40 ~ 19.09.37 | -| `Custom branding name YouTube` | Rename the YouTube app to the name specified in options.json. | 18.25.40 ~ 19.09.37 | -| `Custom double tap length` | Add 'double-tap to seek' value. | 18.25.40 ~ 19.09.37 | +| `Change start page` | Adds an option to set which page the app opens in instead of the homepage. | 18.25.40 ~ 19.11.38 | +| `Custom branding heading` | Applies a custom heading in the top left corner within the app. | 18.25.40 ~ 19.11.38 | +| `Custom branding icon YouTube` | Change the YouTube launcher icon to the icon specified in options.json. | 18.25.40 ~ 19.11.38 | +| `Custom branding name YouTube` | Rename the YouTube app to the name specified in options.json. | 18.25.40 ~ 19.11.38 | +| `Custom double tap length` | Add 'double-tap to seek' value. | 18.25.40 ~ 19.11.38 | | `Custom package name` | Changes the package name for the non-root build of YouTube and YouTube Music to the name specified in options.json. | all | -| `Custom playback speed` | Adds options to customize available playback speeds. | 18.25.40 ~ 19.09.37 | -| `Custom player overlay opacity` | Adds an option to change the opacity of the video player background when player controls are visible. | 18.25.40 ~ 19.09.37 | -| `Custom seekbar color` | Adds an option to customize seekbar colors in video players and video thumbnails. | 18.25.40 ~ 19.09.37 | -| `Default playback speed` | Adds an option to set the default playback speed. | 18.25.40 ~ 19.09.37 | -| `Default video quality` | Adds an option to set the default video quality. | 18.25.40 ~ 19.09.37 | -| `Disable HDR video` | Adds options to disable HDR video. | 18.25.40 ~ 19.09.37 | -| `Disable QUIC protocol` | Adds an option to disable CronetEngine's QUIC protocol. | 18.25.40 ~ 19.09.37 | -| `Disable auto captions` | Adds an option to disable captions from being automatically enabled. | 18.25.40 ~ 19.09.37 | -| `Disable haptic feedback` | Adds an option to disable haptic feedback when swiping the video player. | 18.25.40 ~ 19.09.37 | -| `Disable landscape mode` | Adds an option to disable landscape mode when entering fullscreen. | 18.25.40 ~ 19.09.37 | -| `Disable pip notification` | Disable pip notification when you first launch pip mode. | 18.25.40 ~ 19.09.37 | -| `Disable rolling number animations` | Adds an option to disable rolling number animations of video view count, user likes, and upload time. | 18.43.45 ~ 19.09.37 | -| `Disable shorts on startup` | Adds an option to disable the Shorts player from resuming on app startup when Shorts were last being watched. | 18.25.40 ~ 19.09.37 | -| `Disable speed overlay` | Adds an option to disable 'Play at 2x speed' when pressing and holding in the video player. | 18.25.40 ~ 19.09.37 | -| `Disable update screen` | Adds an option to disable the "Update your app" screen that appears when using an outdated client. | 18.25.40 ~ 19.09.37 | -| `Enable bottom player gestures` | Adds an option to enter fullscreen when swiping down below the video player. | 18.25.40 ~ 19.09.37 | -| `Enable compact controls overlay` | Adds an option to make the fullscreen controls compact. | 18.25.40 ~ 19.09.37 | -| `Enable debug logging` | Adds an option to enable debug logging. | 18.25.40 ~ 19.09.37 | -| `Enable external browser` | Adds an option to always open links in your browser instead of in the in-app-browser. | 18.25.40 ~ 19.09.37 | -| `Enable gradient loading screen` | Adds an option to enable gradient loading screen. | 18.25.40 ~ 19.09.37 | -| `Enable language switch` | Adds an option to enable or disable language switching toggle. | 18.25.40 ~ 19.09.37 | -| `Enable minimized playback` | Enables minimized and background playback. | 18.25.40 ~ 19.09.37 | -| `Enable new splash animation` | Adds an option to enable a new type of splash animation. | 18.25.40 ~ 19.09.37 | -| `Enable new thumbnail preview` | Adds an option to enables the new seekbar thumbnails preview. | 18.25.40 ~ 19.09.37 | -| `Enable old quality layout` | Adds an option to restore the old video quality menu with specific video resolution options. | 18.25.40 ~ 19.09.37 | -| `Enable open links directly` | Adds an option to skip over redirection URLs in external links. | 18.25.40 ~ 19.09.37 | -| `Enable seekbar tapping` | Adds an option to enable tap-to-seek on the seekbar of the video player. | 18.25.40 ~ 19.09.37 | -| `Enable song search` | Adds an option to enable song search in the voice search screen. | 18.30.37 ~ 19.09.37 | -| `Enable tablet mini player` | Adds an option to enable the tablet mini player layout. | 18.25.40 ~ 19.09.37 | -| `Enable tablet navigation bar` | Adds an option to enable the tablet navigation bar. | 18.25.40 ~ 19.09.37 | -| `Enable wide search bar` | Adds an option to replace the search icon with a wide search bar. This will hide the YouTube logo when active. | 18.25.40 ~ 19.09.37 | -| `Force fullscreen` | Adds an option to forcefully open videos in fullscreen. | 18.25.40 ~ 19.09.37 | -| `Force opus codec` | Adds an option to force the opus audio codec instead of the mp4a audio codec. | 18.25.40 ~ 19.09.37 | -| `Force video codec` | Adds an option to force the video codec. | 18.25.40 ~ 19.09.37 | -| `Header switch` | Add switch to change header. | 18.25.40 ~ 19.09.37 | -| `Hide account menu` | Adds the ability to hide account menu elements using a custom filter in the account menu and You tab. | 18.25.40 ~ 19.09.37 | -| `Hide animated button background` | Hides the background of the pause and play animated buttons in the Shorts player. | 18.25.40 ~ 19.09.37 | -| `Hide auto player popup panels` | Adds an option to hide panels (such as live chat) from opening automatically. | 18.25.40 ~ 19.09.37 | -| `Hide autoplay button` | Adds an option to hide the autoplay button in the video player. | 18.25.40 ~ 19.09.37 | -| `Hide autoplay preview` | Adds an option to hide the autoplay preview container when in fullscreen. | 18.25.40 ~ 19.09.37 | -| `Hide button container` | Adds options to hide action buttons below the video player. | 18.25.40 ~ 19.09.37 | -| `Hide captions button` | Adds an option to hide the captions button in the video player. | 18.25.40 ~ 19.09.37 | -| `Hide cast button` | Adds an option to hide the cast button. | 18.25.40 ~ 19.09.37 | -| `Hide category bar` | Adds an option to hide the category bar in feeds. | 18.25.40 ~ 19.09.37 | -| `Hide channel avatar section` | Adds an option to hide the channel avatar section of the subscription feed. | 18.25.40 ~ 19.09.37 | -| `Hide channel profile components` | Adds an option to hide channel profile components. | 18.25.40 ~ 19.09.37 | -| `Hide channel watermark` | Adds an option to hide creator's watermarks in the video player. | 18.25.40 ~ 19.09.37 | -| `Hide collapse button` | Adds an option to hide the collapse button in the video player. | 18.25.40 ~ 19.09.37 | -| `Hide comment component` | Adds options to hide components related to comments. | 18.25.40 ~ 19.09.37 | -| `Hide crowdfunding box` | Adds an option to hide the crowdfunding box between the player and video description. | 18.25.40 ~ 19.09.37 | -| `Hide description components` | Adds an option to hide description components. | 18.25.40 ~ 19.09.37 | -| `Hide double tap overlay filter` | Hides the double tap dark filter layer. | 18.25.40 ~ 19.09.37 | -| `Hide double tap to like animations` | Hides the like animations when double tap the screen in the Shorts player. | 18.25.40 ~ 19.09.37 | -| `Hide end screen cards` | Adds an option to hide suggested video cards at the end of the video in the video player. | 18.25.40 ~ 19.09.37 | -| `Hide end screen overlay` | Adds an option to hide the overlay in fullscreen when swiping up and at the end of videos. | 18.25.40 ~ 19.09.37 | -| `Hide feed flyout panel` | Adds the ability to hide feed flyout panel components using a custom filter. | 18.25.40 ~ 19.09.37 | -| `Hide filmstrip overlay` | Adds an option to hide filmstrip overlay in the video player. | 18.25.40 ~ 19.09.37 | -| `Hide floating microphone` | Adds an option to hide the floating microphone button when searching. | 18.25.40 ~ 19.09.37 | -| `Hide fullscreen button` | Force to hide fullscreen button in player bottom UI container. | 18.25.40 ~ 19.09.37 | -| `Hide fullscreen panels` | Adds an option to hide panels such as live chat when in fullscreen. | 18.25.40 ~ 19.09.37 | -| `Hide general ads` | Adds options to hide general ads. | 18.25.40 ~ 19.09.37 | -| `Hide handle` | Adds options to hide the handle in the account switcher and You tab. | 18.25.40 ~ 19.09.37 | -| `Hide info cards` | Adds an option to hide info-cards in the video player. | 18.25.40 ~ 19.09.37 | -| `Hide latest videos button` | Adds options to hide latest videos button in home feed. | 18.25.40 ~ 19.09.37 | -| `Hide layout components` | Adds options to hide general layout components. | 18.25.40 ~ 19.09.37 | -| `Hide load more button` | Adds an option to hide the button under videos that loads similar videos. | 18.25.40 ~ 19.09.37 | -| `Hide mix playlists` | Adds an option to hide mix playlists in feed. | 18.25.40 ~ 19.09.37 | -| `Hide music button` | Adds an option to hide the YouTube Music button in the video player. | 18.25.40 ~ 19.09.37 | -| `Hide navigation buttons` | Adds options to hide and change navigation buttons (such as the Shorts button). | 18.25.40 ~ 19.09.37 | -| `Hide navigation label` | Adds an option to hide navigation bar labels. | 18.25.40 ~ 19.09.37 | -| `Hide player buttons background` | Force to hide the dark background surrounding the video player controls. | 18.25.40 ~ 19.09.37 | -| `Hide player chapters` | Forces to hide chapters in player bottom UI container. | 18.25.40 ~ 19.09.37 | -| `Hide player flyout panel` | Adds options to hide player flyout panel components. | 18.25.40 ~ 19.09.37 | -| `Hide previous next button` | Adds an option to hide the previous and next buttons in the video player. | 18.25.40 ~ 19.09.37 | -| `Hide search term thumbnail` | Adds an option to hide thumbnails in the search term history. | 18.25.40 ~ 19.09.37 | -| `Hide seek message` | Adds an option to hide the 'Slide left or right to seek' or 'Release to cancel' message container in the video player. | 18.39.41 ~ 19.09.37 | -| `Hide seekbar` | Adds an option to hide the seekbar in video player and video thumbnails. | 18.25.40 ~ 19.09.37 | -| `Hide shorts components` | Adds options to hide components related to YouTube Shorts. | 18.25.40 ~ 19.09.37 | -| `Hide snack bar` | Adds an option to hide the snack bar action popup. | 18.25.40 ~ 19.09.37 | -| `Hide suggested actions` | Adds an option to hide the suggested actions bar inside the player. | 18.25.40 ~ 19.09.37 | -| `Hide suggested video overlay` | Adds an option to hide the suggested video overlay at the end of videos. | 18.25.40 ~ 19.09.37 | -| `Hide suggestions shelf` | Adds an option to hide the suggestions shelf in feed. | 18.25.40 ~ 19.09.37 | -| `Hide time stamp` | Adds an option to hide the timestamp in the bottom left of the video player. | 18.25.40 ~ 19.09.37 | -| `Hide toolbar button` | Adds an option to hide the button in the toolbar. | 18.25.40 ~ 19.09.37 | -| `Hide tooltip content` | Hides the tooltip box that appears on first install. | 18.25.40 ~ 19.09.37 | -| `Hide trending searches` | Adds an option to hide trending searches in the search bar. | 18.25.40 ~ 19.09.37 | -| `Hide video ads` | Adds an option to hide ads in the video player. | 18.25.40 ~ 19.09.37 | -| `Hide voice search button` | Hide voice search button in search bar. | 18.25.40 ~ 19.09.37 | -| `Keep landscape mode` | Adds an option to keep landscape mode when turning the screen off and on in fullscreen. | 18.42.41 ~ 19.09.37 | -| `Layout switch` | Adds an option to trick dpi to use tablet or phone layout. | 18.25.40 ~ 19.09.37 | -| `MaterialYou` | Enables MaterialYou theme for Android 12+ | 18.25.40 ~ 19.09.37 | -| `MicroG support` | Allows ReVanced Extended to run without root and under a different package name with MicroG. | 18.25.40 ~ 19.09.37 | -| `Overlay buttons` | Adds an option to display overlay buttons in the video player. | 18.25.40 ~ 19.09.37 | -| `Quick actions components` | Adds options to hide and customize components below the seekbar in fullscreen. | 18.25.40 ~ 19.09.37 | -| `Remove viewer discretion dialog` | Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction. | 18.25.40 ~ 19.09.37 | -| `Return YouTube Dislike` | Shows the dislike count of videos using the Return YouTube Dislike API. | 18.25.40 ~ 19.09.37 | -| `Sanitize sharing links` | Adds an option to remove tracking query parameters from URLs when sharing links. | 18.25.40 ~ 19.09.37 | -| `Settings` | Applies mandatory patches to implement ReVanced Extended settings into the application. | 18.25.40 ~ 19.09.37 | +| `Custom playback speed` | Adds options to customize available playback speeds. | 18.25.40 ~ 19.11.38 | +| `Custom player overlay opacity` | Adds an option to change the opacity of the video player background when player controls are visible. | 18.25.40 ~ 19.11.38 | +| `Custom seekbar color` | Adds an option to customize seekbar colors in video players and video thumbnails. | 18.25.40 ~ 19.11.38 | +| `Default playback speed` | Adds an option to set the default playback speed. | 18.25.40 ~ 19.11.38 | +| `Default video quality` | Adds an option to set the default video quality. | 18.25.40 ~ 19.11.38 | +| `Disable HDR video` | Adds options to disable HDR video. | 18.25.40 ~ 19.11.38 | +| `Disable QUIC protocol` | Adds an option to disable CronetEngine's QUIC protocol. | 18.25.40 ~ 19.11.38 | +| `Disable auto captions` | Adds an option to disable captions from being automatically enabled. | 18.25.40 ~ 19.11.38 | +| `Disable haptic feedback` | Adds an option to disable haptic feedback when swiping the video player. | 18.25.40 ~ 19.11.38 | +| `Disable landscape mode` | Adds an option to disable landscape mode when entering fullscreen. | 18.25.40 ~ 19.11.38 | +| `Disable pip notification` | Disable pip notification when you first launch pip mode. | 18.25.40 ~ 19.11.38 | +| `Disable rolling number animations` | Adds an option to disable rolling number animations of video view count, user likes, and upload time. | 18.43.45 ~ 19.11.38 | +| `Disable shorts on startup` | Adds an option to disable the Shorts player from resuming on app startup when Shorts were last being watched. | 18.25.40 ~ 19.11.38 | +| `Disable speed overlay` | Adds an option to disable 'Play at 2x speed' when pressing and holding in the video player. | 18.25.40 ~ 19.11.38 | +| `Disable update screen` | Adds an option to disable the "Update your app" screen that appears when using an outdated client. | 18.25.40 ~ 19.11.38 | +| `Enable bottom player gestures` | Adds an option to enter fullscreen when swiping down below the video player. | 18.25.40 ~ 19.11.38 | +| `Enable compact controls overlay` | Adds an option to make the fullscreen controls compact. | 18.25.40 ~ 19.11.38 | +| `Enable debug logging` | Adds an option to enable debug logging. | 18.25.40 ~ 19.11.38 | +| `Enable external browser` | Adds an option to always open links in your browser instead of in the in-app-browser. | 18.25.40 ~ 19.11.38 | +| `Enable gradient loading screen` | Adds an option to enable gradient loading screen. | 18.25.40 ~ 19.11.38 | +| `Enable language switch` | Adds an option to enable or disable language switching toggle. | 18.25.40 ~ 19.11.38 | +| `Enable minimized playback` | Enables minimized and background playback. | 18.25.40 ~ 19.11.38 | +| `Enable new splash animation` | Adds an option to enable a new type of splash animation. | 18.25.40 ~ 19.11.38 | +| `Enable new thumbnail preview` | Adds an option to enables the new seekbar thumbnails preview. | 18.25.40 ~ 19.11.38 | +| `Enable old quality layout` | Adds an option to restore the old video quality menu with specific video resolution options. | 18.25.40 ~ 19.11.38 | +| `Enable open links directly` | Adds an option to skip over redirection URLs in external links. | 18.25.40 ~ 19.11.38 | +| `Enable seekbar tapping` | Adds an option to enable tap-to-seek on the seekbar of the video player. | 18.25.40 ~ 19.11.38 | +| `Enable song search` | Adds an option to enable song search in the voice search screen. | 18.30.37 ~ 19.11.38 | +| `Enable tablet mini player` | Adds an option to enable the tablet mini player layout. | 18.25.40 ~ 19.11.38 | +| `Enable tablet navigation bar` | Adds an option to enable the tablet navigation bar. | 18.25.40 ~ 19.11.38 | +| `Enable wide search bar` | Adds an option to replace the search icon with a wide search bar. This will hide the YouTube logo when active. | 18.25.40 ~ 19.11.38 | +| `Force fullscreen` | Adds an option to forcefully open videos in fullscreen. | 18.25.40 ~ 19.11.38 | +| `Force opus codec` | Adds an option to force the opus audio codec instead of the mp4a audio codec. | 18.25.40 ~ 19.11.38 | +| `Force video codec` | Adds an option to force the video codec. | 18.25.40 ~ 19.11.38 | +| `Header switch` | Add switch to change header. | 18.25.40 ~ 19.11.38 | +| `Hide account menu` | Adds the ability to hide account menu elements using a custom filter in the account menu and You tab. | 18.25.40 ~ 19.11.38 | +| `Hide animated button background` | Hides the background of the pause and play animated buttons in the Shorts player. | 18.25.40 ~ 19.11.38 | +| `Hide auto player popup panels` | Adds an option to hide panels (such as live chat) from opening automatically. | 18.25.40 ~ 19.11.38 | +| `Hide autoplay button` | Adds an option to hide the autoplay button in the video player. | 18.25.40 ~ 19.11.38 | +| `Hide autoplay preview` | Adds an option to hide the autoplay preview container when in fullscreen. | 18.25.40 ~ 19.11.38 | +| `Hide button container` | Adds options to hide action buttons below the video player. | 18.25.40 ~ 19.11.38 | +| `Hide captions button` | Adds an option to hide the captions button in the video player. | 18.25.40 ~ 19.11.38 | +| `Hide cast button` | Adds an option to hide the cast button. | 18.25.40 ~ 19.11.38 | +| `Hide category bar` | Adds an option to hide the category bar in feeds. | 18.25.40 ~ 19.11.38 | +| `Hide channel avatar section` | Adds an option to hide the channel avatar section of the subscription feed. | 18.25.40 ~ 19.11.38 | +| `Hide channel profile components` | Adds an option to hide channel profile components. | 18.25.40 ~ 19.11.38 | +| `Hide channel watermark` | Adds an option to hide creator's watermarks in the video player. | 18.25.40 ~ 19.11.38 | +| `Hide collapse button` | Adds an option to hide the collapse button in the video player. | 18.25.40 ~ 19.11.38 | +| `Hide comment component` | Adds options to hide components related to comments. | 18.25.40 ~ 19.11.38 | +| `Hide crowdfunding box` | Adds an option to hide the crowdfunding box between the player and video description. | 18.25.40 ~ 19.11.38 | +| `Hide description components` | Adds an option to hide description components. | 18.25.40 ~ 19.11.38 | +| `Hide double tap overlay filter` | Hides the double tap dark filter layer. | 18.25.40 ~ 19.11.38 | +| `Hide double tap to like animations` | Hides the like animations when double tap the screen in the Shorts player. | 18.25.40 ~ 19.11.38 | +| `Hide end screen cards` | Adds an option to hide suggested video cards at the end of the video in the video player. | 18.25.40 ~ 19.11.38 | +| `Hide end screen overlay` | Adds an option to hide the overlay in fullscreen when swiping up and at the end of videos. | 18.25.40 ~ 19.11.38 | +| `Hide feed flyout panel` | Adds the ability to hide feed flyout panel components using a custom filter. | 18.25.40 ~ 19.11.38 | +| `Hide filmstrip overlay` | Adds an option to hide filmstrip overlay in the video player. | 18.25.40 ~ 19.11.38 | +| `Hide floating microphone` | Adds an option to hide the floating microphone button when searching. | 18.25.40 ~ 19.11.38 | +| `Hide fullscreen button` | Force to hide fullscreen button in player bottom UI container. | 18.25.40 ~ 19.11.38 | +| `Hide fullscreen panels` | Adds an option to hide panels such as live chat when in fullscreen. | 18.25.40 ~ 19.11.38 | +| `Hide general ads` | Adds options to hide general ads. | 18.25.40 ~ 19.11.38 | +| `Hide handle` | Adds options to hide the handle in the account switcher and You tab. | 18.25.40 ~ 19.11.38 | +| `Hide info cards` | Adds an option to hide info-cards in the video player. | 18.25.40 ~ 19.11.38 | +| `Hide latest videos button` | Adds options to hide latest videos button in home feed. | 18.25.40 ~ 19.11.38 | +| `Hide layout components` | Adds options to hide general layout components. | 18.25.40 ~ 19.11.38 | +| `Hide load more button` | Adds an option to hide the button under videos that loads similar videos. | 18.25.40 ~ 19.11.38 | +| `Hide mix playlists` | Adds an option to hide mix playlists in feed. | 18.25.40 ~ 19.11.38 | +| `Hide music button` | Adds an option to hide the YouTube Music button in the video player. | 18.25.40 ~ 19.11.38 | +| `Hide navigation buttons` | Adds options to hide and change navigation buttons (such as the Shorts button). | 18.25.40 ~ 19.11.38 | +| `Hide navigation label` | Adds an option to hide navigation bar labels. | 18.25.40 ~ 19.11.38 | +| `Hide player buttons background` | Force to hide the dark background surrounding the video player controls. | 18.25.40 ~ 19.11.38 | +| `Hide player chapters` | Forces to hide chapters in player bottom UI container. | 18.25.40 ~ 19.11.38 | +| `Hide player flyout panel` | Adds options to hide player flyout panel components. | 18.25.40 ~ 19.11.38 | +| `Hide previous next button` | Adds an option to hide the previous and next buttons in the video player. | 18.25.40 ~ 19.11.38 | +| `Hide search term thumbnail` | Adds an option to hide thumbnails in the search term history. | 18.25.40 ~ 19.11.38 | +| `Hide seek message` | Adds an option to hide the 'Slide left or right to seek' or 'Release to cancel' message container in the video player. | 18.39.41 ~ 19.11.38 | +| `Hide seekbar` | Adds an option to hide the seekbar in video player and video thumbnails. | 18.25.40 ~ 19.11.38 | +| `Hide shorts components` | Adds options to hide components related to YouTube Shorts. | 18.25.40 ~ 19.11.38 | +| `Hide snack bar` | Adds an option to hide the snack bar action popup. | 18.25.40 ~ 19.11.38 | +| `Hide suggested actions` | Adds an option to hide the suggested actions bar inside the player. | 18.25.40 ~ 19.11.38 | +| `Hide suggested video overlay` | Adds an option to hide the suggested video overlay at the end of videos. | 18.25.40 ~ 19.11.38 | +| `Hide suggestions shelf` | Adds an option to hide the suggestions shelf in feed. | 18.25.40 ~ 19.11.38 | +| `Hide time stamp` | Adds an option to hide the timestamp in the bottom left of the video player. | 18.25.40 ~ 19.11.38 | +| `Hide toolbar button` | Adds an option to hide the button in the toolbar. | 18.25.40 ~ 19.11.38 | +| `Hide tooltip content` | Hides the tooltip box that appears on first install. | 18.25.40 ~ 19.11.38 | +| `Hide trending searches` | Adds an option to hide trending searches in the search bar. | 18.25.40 ~ 19.11.38 | +| `Hide video ads` | Adds an option to hide ads in the video player. | 18.25.40 ~ 19.11.38 | +| `Hide voice search button` | Hide voice search button in search bar. | 18.25.40 ~ 19.11.38 | +| `Keep landscape mode` | Adds an option to keep landscape mode when turning the screen off and on in fullscreen. | 18.42.41 ~ 19.11.38 | +| `Layout switch` | Adds an option to trick dpi to use tablet or phone layout. | 18.25.40 ~ 19.11.38 | +| `MaterialYou` | Enables MaterialYou theme for Android 12+ | 18.25.40 ~ 19.11.38 | +| `MicroG support` | Allows ReVanced Extended to run without root and under a different package name with MicroG. | 18.25.40 ~ 19.11.38 | +| `Overlay buttons` | Adds an option to display overlay buttons in the video player. | 18.25.40 ~ 19.11.38 | +| `Quick actions components` | Adds options to hide and customize components below the seekbar in fullscreen. | 18.25.40 ~ 19.11.38 | +| `Remove viewer discretion dialog` | Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction. | 18.25.40 ~ 19.11.38 | +| `Return YouTube Dislike` | Shows the dislike count of videos using the Return YouTube Dislike API. | 18.25.40 ~ 19.11.38 | +| `Sanitize sharing links` | Adds an option to remove tracking query parameters from URLs when sharing links. | 18.25.40 ~ 19.11.38 | +| `Settings` | Applies mandatory patches to implement ReVanced Extended settings into the application. | 18.25.40 ~ 19.11.38 | | `Settings icons` | Adds icons to specific preferences in the settings. | all | -| `Shorts overlay buttons` | Apply the new icons to the action buttons of the Shorts player. | 18.25.40 ~ 19.09.37 | -| `SponsorBlock` | Integrates SponsorBlock which allows skipping video segments such as sponsored content. | 18.25.40 ~ 19.09.37 | -| `Spoof app version` | Adds options to spoof the YouTube client version. This can be used to restore old UI elements and features. | 18.25.40 ~ 19.09.37 | -| `Spoof device dimensions` | Adds an option to spoof the device dimensions which unlocks higher video qualities if they aren't available on the device. | 18.25.40 ~ 19.09.37 | -| `Spoof player parameters` | Adds options to spoof player parameters to prevent playback issues. | 18.25.40 ~ 19.09.37 | -| `Swipe controls` | Adds options to enable and configure volume and brightness swipe controls. | 18.25.40 ~ 19.09.37 | -| `Theme` | Change the app's theme to the values specified in options.json. | 18.25.40 ~ 19.09.37 | -| `Translations` | Add Crowdin translations for YouTube. | 18.25.40 ~ 19.09.37 | +| `Shorts overlay buttons` | Apply the new icons to the action buttons of the Shorts player. | 18.25.40 ~ 19.11.38 | +| `SponsorBlock` | Integrates SponsorBlock which allows skipping video segments such as sponsored content. | 18.25.40 ~ 19.11.38 | +| `Spoof app version` | Adds options to spoof the YouTube client version. This can be used to restore old UI elements and features. | 18.25.40 ~ 19.11.38 | +| `Spoof device dimensions` | Adds an option to spoof the device dimensions which unlocks higher video qualities if they aren't available on the device. | 18.25.40 ~ 19.11.38 | +| `Spoof player parameters` | Adds options to spoof player parameters to prevent playback issues. | 18.25.40 ~ 19.11.38 | +| `Swipe controls` | Adds options to enable and configure volume and brightness swipe controls. | 18.25.40 ~ 19.11.38 | +| `Theme` | Change the app's theme to the values specified in options.json. | 18.25.40 ~ 19.11.38 | +| `Translations` | Add Crowdin translations for YouTube. | 18.25.40 ~ 19.11.38 | ### [📦 `com.google.android.apps.youtube.music`](https://play.google.com/store/apps/details?id=com.google.android.apps.youtube.music) @@ -269,7 +269,9 @@ Example: "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] } ], diff --git a/api/revanced-patches.api b/api/revanced-patches.api new file mode 100644 index 000000000..48a8b53e2 --- /dev/null +++ b/api/revanced-patches.api @@ -0,0 +1,3681 @@ +public final class app/revanced/patches/music/account/component/MenuComponentPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/account/component/MenuComponentPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/account/component/fingerprints/MenuEntryFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/account/component/fingerprints/MenuEntryFingerprint; +} + +public final class app/revanced/patches/music/account/handle/HideHandlePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/account/handle/HideHandlePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/account/handle/fingerprints/AccountSwitcherAccessibilityLabelFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/account/handle/fingerprints/AccountSwitcherAccessibilityLabelFingerprint; +} + +public final class app/revanced/patches/music/account/handle/fingerprints/NamesInactiveAccountThumbnailSizeFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/account/handle/fingerprints/NamesInactiveAccountThumbnailSizeFingerprint; +} + +public final class app/revanced/patches/music/account/tos/TermsContainerPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/account/tos/TermsContainerPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/account/tos/fingerprints/TermsOfServiceFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/account/tos/fingerprints/TermsOfServiceFingerprint; +} + +public final class app/revanced/patches/music/actionbar/component/ActionBarComponentPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/actionbar/component/ActionBarComponentPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/actionbar/component/fingerprints/ActionBarComponentFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/actionbar/component/fingerprints/ActionBarComponentFingerprint; +} + +public final class app/revanced/patches/music/actionbar/component/fingerprints/LikeDislikeContainerFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/actionbar/component/fingerprints/LikeDislikeContainerFingerprint; +} + +public final class app/revanced/patches/music/actionbar/component/fingerprints/LikeDislikeContainerVisibilityFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/actionbar/component/fingerprints/LikeDislikeContainerVisibilityFingerprint; +} + +public final class app/revanced/patches/music/ads/general/GeneralAdsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/ads/general/GeneralAdsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/ads/general/fingerprints/FloatingLayoutFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/ads/general/fingerprints/FloatingLayoutFingerprint; +} + +public final class app/revanced/patches/music/ads/general/fingerprints/NotifierShelfFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/ads/general/fingerprints/NotifierShelfFingerprint; +} + +public final class app/revanced/patches/music/ads/music/MusicAdsPatch : app/revanced/patches/shared/patch/ads/AbstractAdsPatch { + public static final field INSTANCE Lapp/revanced/patches/music/ads/music/MusicAdsPatch; +} + +public final class app/revanced/patches/music/flyoutpanel/compactdialog/CompactDialogPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/flyoutpanel/compactdialog/CompactDialogPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/flyoutpanel/compactdialog/fingerprints/DialogSolidFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/flyoutpanel/compactdialog/fingerprints/DialogSolidFingerprint; +} + +public final class app/revanced/patches/music/flyoutpanel/component/FlyoutPanelPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/flyoutpanel/component/FlyoutPanelPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/flyoutpanel/component/fingerprints/SleepTimerFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/flyoutpanel/component/fingerprints/SleepTimerFingerprint; +} + +public final class app/revanced/patches/music/flyoutpanel/playbackspeed/PlaybackSpeedPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/flyoutpanel/playbackspeed/PlaybackSpeedPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/flyoutpanel/replace/ReplaceDismissQueuePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/flyoutpanel/replace/ReplaceDismissQueuePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/amoled/AmoledPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/amoled/AmoledPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/music/general/autocaptions/AutoCaptionsPatch : app/revanced/patches/shared/patch/captions/AbstractAutoCaptionsPatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/autocaptions/AutoCaptionsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/buttonshelf/HideButtonShelfPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/buttonshelf/HideButtonShelfPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/carouselshelf/HideCarouselShelfPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/carouselshelf/HideCarouselShelfPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/castbutton/HideCastButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/castbutton/HideCastButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/castbutton/fingerprints/MediaRouteButtonFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/general/castbutton/fingerprints/MediaRouteButtonFingerprint; +} + +public final class app/revanced/patches/music/general/castbutton/fingerprints/PlayerOverlayChipFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/general/castbutton/fingerprints/PlayerOverlayChipFingerprint; +} + +public final class app/revanced/patches/music/general/categorybar/CategoryBarPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/categorybar/CategoryBarPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/categorybar/fingerprints/ChipCloudFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/general/categorybar/fingerprints/ChipCloudFingerprint; +} + +public final class app/revanced/patches/music/general/channelguidelines/HideChannelGuidelinesPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/channelguidelines/HideChannelGuidelinesPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/customfilter/CustomFilterPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/customfilter/CustomFilterPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/dialog/RemoveViewerDiscretionDialogPatch : app/revanced/patches/shared/patch/dialog/AbstractRemoveViewerDiscretionDialogPatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/dialog/RemoveViewerDiscretionDialogPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/emojipicker/HideEmojiPickerPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/emojipicker/HideEmojiPickerPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/floatingbutton/NewPlaylistButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/floatingbutton/NewPlaylistButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/floatingbutton/fingerprints/FloatingButtonFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/general/floatingbutton/fingerprints/FloatingButtonFingerprint; +} + +public final class app/revanced/patches/music/general/floatingbutton/fingerprints/FloatingButtonParentFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/general/floatingbutton/fingerprints/FloatingButtonParentFingerprint; +} + +public final class app/revanced/patches/music/general/historybutton/HideHistoryButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/historybutton/HideHistoryButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/historybutton/fingerprints/HistoryMenuItemFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/general/historybutton/fingerprints/HistoryMenuItemFingerprint; +} + +public final class app/revanced/patches/music/general/historybutton/fingerprints/HistoryMenuItemOfflineTabFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/general/historybutton/fingerprints/HistoryMenuItemOfflineTabFingerprint; +} + +public final class app/revanced/patches/music/general/landscapemode/LandScapeModePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/landscapemode/LandScapeModePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/landscapemode/fingerprints/TabletIdentifierFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/general/landscapemode/fingerprints/TabletIdentifierFingerprint; +} + +public final class app/revanced/patches/music/general/oldstylelibraryshelf/OldStyleLibraryShelfPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/oldstylelibraryshelf/OldStyleLibraryShelfPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/oldstylelibraryshelf/fingerprints/BrowseIdFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/general/oldstylelibraryshelf/fingerprints/BrowseIdFingerprint; +} + +public final class app/revanced/patches/music/general/playlistcards/HidePlaylistCardsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/playlistcards/HidePlaylistCardsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/sampleshelf/HideCarouselShelfPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/sampleshelf/HideCarouselShelfPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/startpage/ChangeStartPagePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/startpage/ChangeStartPagePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/startpage/fingerprints/ColdStartUpFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/general/startpage/fingerprints/ColdStartUpFingerprint; +} + +public final class app/revanced/patches/music/general/taptoupdate/HideTapToUpdateButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/taptoupdate/HideTapToUpdateButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/taptoupdate/fingerprints/ContentPillInFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/general/taptoupdate/fingerprints/ContentPillInFingerprint; +} + +public final class app/revanced/patches/music/general/tooltip/TooltipContentViewPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/tooltip/TooltipContentViewPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/general/tooltip/fingerprints/TooltipContentViewFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/general/tooltip/fingerprints/TooltipContentViewFingerprint; +} + +public final class app/revanced/patches/music/general/voicesearch/VoiceSearchButtonPatch : app/revanced/patches/shared/patch/voicesearch/AbstractVoiceSearchButtonPatch { + public static final field INSTANCE Lapp/revanced/patches/music/general/voicesearch/VoiceSearchButtonPatch; +} + +public final class app/revanced/patches/music/layout/branding/icon/CustomBrandingIconPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/music/layout/branding/icon/CustomBrandingIconPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/music/layout/branding/name/CustomBrandingNamePatch : app/revanced/patches/shared/patch/elements/AbstractRemoveStringsElementsPatch { + public static final field INSTANCE Lapp/revanced/patches/music/layout/branding/name/CustomBrandingNamePatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/music/layout/doubletapbackground/DoubleTapOverlayBackgroundPatch : app/revanced/patches/shared/patch/overlaybackground/AbstractOverlayBackgroundPatch { + public static final field INSTANCE Lapp/revanced/patches/music/layout/doubletapbackground/DoubleTapOverlayBackgroundPatch; +} + +public final class app/revanced/patches/music/layout/doubletapbackground/PlayerOverlayFilterPatch : app/revanced/patches/shared/patch/overlaybackground/AbstractOverlayBackgroundPatch { + public static final field INSTANCE Lapp/revanced/patches/music/layout/doubletapbackground/PlayerOverlayFilterPatch; +} + +public final class app/revanced/patches/music/layout/overlayfilter/OverlayFilterBytecodePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/layout/overlayfilter/OverlayFilterBytecodePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/layout/overlayfilter/OverlayFilterPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/music/layout/overlayfilter/OverlayFilterPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/music/layout/overlayfilter/fingerprints/DesignBottomSheetDialogFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/layout/overlayfilter/fingerprints/DesignBottomSheetDialogFingerprint; +} + +public final class app/revanced/patches/music/misc/backgroundplay/BackgroundPlayPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/misc/backgroundplay/BackgroundPlayPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/misc/backgroundplay/fingerprints/BackgroundPlaybackParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/misc/backgroundplay/fingerprints/BackgroundPlaybackParentFingerprint; +} + +public final class app/revanced/patches/music/misc/bitrate/BitrateDefaultValuePatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/music/misc/bitrate/BitrateDefaultValuePatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/music/misc/codecs/CodecsUnlockPatch : app/revanced/patches/shared/patch/opus/AbstractOpusCodecsPatch { + public static final field INSTANCE Lapp/revanced/patches/music/misc/codecs/CodecsUnlockPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/misc/debugging/DebuggingPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/music/misc/debugging/DebuggingPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/music/misc/exclusiveaudio/ExclusiveAudioPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/misc/exclusiveaudio/ExclusiveAudioPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/misc/exclusiveaudio/fingerprints/DataSavingSettingsFragmentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/misc/exclusiveaudio/fingerprints/DataSavingSettingsFragmentFingerprint; +} + +public final class app/revanced/patches/music/misc/exclusiveaudio/fingerprints/MusicBrowserServiceFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/misc/exclusiveaudio/fingerprints/MusicBrowserServiceFingerprint; +} + +public final class app/revanced/patches/music/misc/exclusiveaudio/fingerprints/PodCastConfigFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/misc/exclusiveaudio/fingerprints/PodCastConfigFingerprint; +} + +public final class app/revanced/patches/music/misc/minimizedplayback/MinimizedPlaybackPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/misc/minimizedplayback/MinimizedPlaybackPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint; +} + +public final class app/revanced/patches/music/misc/premium/HideGetPremiumPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/misc/premium/HideGetPremiumPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/misc/premium/fingerprints/AccountMenuFooterFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/misc/premium/fingerprints/AccountMenuFooterFingerprint; +} + +public final class app/revanced/patches/music/misc/premium/fingerprints/HideGetPremiumFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/misc/premium/fingerprints/HideGetPremiumFingerprint; +} + +public final class app/revanced/patches/music/misc/premium/fingerprints/MembershipSettingsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/misc/premium/fingerprints/MembershipSettingsFingerprint; +} + +public final class app/revanced/patches/music/misc/premium/fingerprints/MembershipSettingsParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/misc/premium/fingerprints/MembershipSettingsParentFingerprint; +} + +public final class app/revanced/patches/music/misc/spoofappversion/SpoofAppVersionPatch : app/revanced/patches/shared/patch/versionspoof/AbstractVersionSpoofPatch { + public static final field INSTANCE Lapp/revanced/patches/music/misc/spoofappversion/SpoofAppVersionPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/misc/tastebuilder/TasteBuilderPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/misc/tastebuilder/TasteBuilderPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/misc/tastebuilder/fingerprints/TasteBuilderConstructorFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/misc/tastebuilder/fingerprints/TasteBuilderConstructorFingerprint; +} + +public final class app/revanced/patches/music/misc/tastebuilder/fingerprints/TasteBuilderSyntheticFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/misc/tastebuilder/fingerprints/TasteBuilderSyntheticFingerprint; +} + +public final class app/revanced/patches/music/misc/tracking/SanitizeUrlQueryPatch : app/revanced/patches/shared/patch/tracking/AbstractSanitizeUrlQueryPatch { + public static final field INSTANCE Lapp/revanced/patches/music/misc/tracking/SanitizeUrlQueryPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/misc/tracking/fingerprints/ShareLinkFormatterFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/misc/tracking/fingerprints/ShareLinkFormatterFingerprint; +} + +public final class app/revanced/patches/music/misc/translations/TranslationsPatch : app/revanced/patches/shared/patch/translations/AbstractTranslationsPatch { + public static final field INSTANCE Lapp/revanced/patches/music/misc/translations/TranslationsPatch; +} + +public final class app/revanced/patches/music/navigation/black/BlackNavigationBarPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/navigation/black/BlackNavigationBarPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/navigation/black/fingerprints/TabLayoutFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/navigation/black/fingerprints/TabLayoutFingerprint; +} + +public final class app/revanced/patches/music/navigation/component/NavigationBarComponentPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/navigation/component/NavigationBarComponentPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/navigation/component/fingerprints/TabLayoutTextFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/navigation/component/fingerprints/TabLayoutTextFingerprint; +} + +public final class app/revanced/patches/music/player/colormatchplayer/ColorMatchPlayerPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/player/colormatchplayer/ColorMatchPlayerPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/player/colormatchplayer/fingerprints/NewPlayerColorFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/player/colormatchplayer/fingerprints/NewPlayerColorFingerprint; +} + +public final class app/revanced/patches/music/player/minimizedplayer/MinimizedPlayerPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/player/minimizedplayer/MinimizedPlayerPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/player/minimizedplayer/fingerprints/MinimizedPlayerFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/player/minimizedplayer/fingerprints/MinimizedPlayerFingerprint; +} + +public final class app/revanced/patches/music/player/oldplayerbackground/OldPlayerBackgroundPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/player/oldplayerbackground/OldPlayerBackgroundPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/player/oldplayerbackground/fingerprints/OldPlayerBackgroundFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/player/oldplayerbackground/fingerprints/OldPlayerBackgroundFingerprint; +} + +public final class app/revanced/patches/music/player/oldplayerlayout/OldPlayerLayoutPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/player/oldplayerlayout/OldPlayerLayoutPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/player/oldplayerlayout/fingerprints/OldPlayerLayoutFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/player/oldplayerlayout/fingerprints/OldPlayerLayoutFingerprint; +} + +public final class app/revanced/patches/music/player/oldstyleminiplayer/OldStyleMiniPlayerPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/player/oldstyleminiplayer/OldStyleMiniPlayerPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/player/oldstyleminiplayer/fingerprints/MiniPlayerParentFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/player/oldstyleminiplayer/fingerprints/MiniPlayerParentFingerprint; +} + +public final class app/revanced/patches/music/player/oldstyleminiplayer/fingerprints/NextButtonVisibilityFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/player/oldstyleminiplayer/fingerprints/NextButtonVisibilityFingerprint; +} + +public final class app/revanced/patches/music/player/oldstyleminiplayer/fingerprints/SwipeToCloseFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/player/oldstyleminiplayer/fingerprints/SwipeToCloseFingerprint; +} + +public final class app/revanced/patches/music/player/repeat/RememberRepeatPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/player/repeat/RememberRepeatPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/player/repeat/fingerprints/RepeatTrackFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/player/repeat/fingerprints/RepeatTrackFingerprint; +} + +public final class app/revanced/patches/music/player/replace/ReplaceCastButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/player/replace/ReplaceCastButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/player/replace/fingerprints/CastButtonContainerFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/player/replace/fingerprints/CastButtonContainerFingerprint; +} + +public final class app/revanced/patches/music/player/share/ShareButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/player/share/ShareButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/player/share/fingerprints/RemixGenericButtonFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/player/share/fingerprints/RemixGenericButtonFingerprint; +} + +public final class app/revanced/patches/music/player/shuffle/RememberShufflePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/player/shuffle/RememberShufflePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/player/shuffle/fingerprints/MusicPlaybackControlsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/player/shuffle/fingerprints/MusicPlaybackControlsFingerprint; +} + +public final class app/revanced/patches/music/player/shuffle/fingerprints/ShuffleClassReferenceFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/player/shuffle/fingerprints/ShuffleClassReferenceFingerprint; +} + +public final class app/revanced/patches/music/player/zenmode/ZenModePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/player/zenmode/ZenModePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/player/zenmode/fingerprints/ZenModeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/player/zenmode/fingerprints/ZenModeFingerprint; +} + +public final class app/revanced/patches/music/utils/fingerprints/MenuItemFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/fingerprints/MenuItemFingerprint; +} + +public final class app/revanced/patches/music/utils/fingerprints/PlayerColorFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/fingerprints/PlayerColorFingerprint; +} + +public final class app/revanced/patches/music/utils/fingerprints/SeekBarConstructorFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/fingerprints/SeekBarConstructorFingerprint; +} + +public final class app/revanced/patches/music/utils/fix/androidauto/AndroidAutoCertificatePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/fix/androidauto/AndroidAutoCertificatePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/fix/androidauto/fingerprints/CertificateCheckFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/fix/androidauto/fingerprints/CertificateCheckFingerprint; +} + +public final class app/revanced/patches/music/utils/fix/clientspoof/ClientSpoofPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/fix/clientspoof/ClientSpoofPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/fix/clientspoof/fingerprints/UserAgentHeaderBuilderFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/fix/clientspoof/fingerprints/UserAgentHeaderBuilderFingerprint; +} + +public final class app/revanced/patches/music/utils/fix/fileprovider/FileProviderPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/fix/fileprovider/FileProviderPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/fix/fileprovider/fingerprints/FileProviderResolverFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/fix/fileprovider/fingerprints/FileProviderResolverFingerprint; +} + +public final class app/revanced/patches/music/utils/flyoutbutton/FlyoutButtonContainerPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/flyoutbutton/FlyoutButtonContainerPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/flyoutbutton/FlyoutButtonContainerResourcePatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/flyoutbutton/FlyoutButtonContainerResourcePatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/music/utils/flyoutbutton/fingerprints/FlyoutPanelLikeButtonFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/flyoutbutton/fingerprints/FlyoutPanelLikeButtonFingerprint; +} + +public final class app/revanced/patches/music/utils/integrations/Constants { + public static final field ACCOUNT Ljava/lang/String; + public static final field ACCOUNT_PATH Ljava/lang/String; + public static final field ACTIONBAR Ljava/lang/String; + public static final field ACTIONBAR_PATH Ljava/lang/String; + public static final field ADS_PATH Ljava/lang/String; + public static final field COMPONENTS_PATH Ljava/lang/String; + public static final field FLYOUT Ljava/lang/String; + public static final field FLYOUT_PATH Ljava/lang/String; + public static final field GENERAL Ljava/lang/String; + public static final field GENERAL_PATH Ljava/lang/String; + public static final field INSTANCE Lapp/revanced/patches/music/utils/integrations/Constants; + public static final field INTEGRATIONS_PATH Ljava/lang/String; + public static final field MISC_PATH Ljava/lang/String; + public static final field NAVIGATION Ljava/lang/String; + public static final field NAVIGATION_PATH Ljava/lang/String; + public static final field PATCHES_PATH Ljava/lang/String; + public static final field PLAYER Ljava/lang/String; + public static final field PLAYER_PATH Ljava/lang/String; + public static final field UTILS_PATH Ljava/lang/String; + public static final field VIDEO_PATH Ljava/lang/String; + public final fun getLANGUAGE_LIST ()[Ljava/lang/String; +} + +public final class app/revanced/patches/music/utils/integrations/IntegrationsPatch : app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/integrations/IntegrationsPatch; +} + +public final class app/revanced/patches/music/utils/integrations/fingerprints/InitFingerprint : app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/integrations/fingerprints/InitFingerprint; +} + +public final class app/revanced/patches/music/utils/intenthook/IntentHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/intenthook/IntentHookPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/intenthook/fingerprints/GoogleApiActivityFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/intenthook/fingerprints/GoogleApiActivityFingerprint; +} + +public final class app/revanced/patches/music/utils/litho/LithoFilterPatch : app/revanced/patcher/patch/BytecodePatch, java/io/Closeable { + public static final field INSTANCE Lapp/revanced/patches/music/utils/litho/LithoFilterPatch; + public fun close ()V + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/litho/fingerprints/LithoFilterFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/litho/fingerprints/LithoFilterFingerprint; +} + +public final class app/revanced/patches/music/utils/mainactivity/MainActivityResolvePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/mainactivity/MainActivityResolvePatch; + public static field mainActivityClassDef Lcom/android/tools/smali/dexlib2/iface/ClassDef; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public final fun getMainActivityClassDef ()Lcom/android/tools/smali/dexlib2/iface/ClassDef; + public final fun injectInit (Ljava/lang/String;Ljava/lang/String;)V + public final fun setMainActivityClassDef (Lcom/android/tools/smali/dexlib2/iface/ClassDef;)V +} + +public final class app/revanced/patches/music/utils/mainactivity/fingerprints/MainActivityFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/mainactivity/fingerprints/MainActivityFingerprint; +} + +public final class app/revanced/patches/music/utils/microg/Constants { + public static final field INSTANCE Lapp/revanced/patches/music/utils/microg/Constants; +} + +public final class app/revanced/patches/music/utils/microg/MicroGPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/microg/MicroGPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/microg/MicroGResourcePatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/microg/MicroGResourcePatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/music/utils/microg/fingerprints/CastContextFetchFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/microg/fingerprints/CastContextFetchFingerprint; +} + +public final class app/revanced/patches/music/utils/microg/fingerprints/CastDynamiteModuleFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/microg/fingerprints/CastDynamiteModuleFingerprint; +} + +public final class app/revanced/patches/music/utils/microg/fingerprints/CastDynamiteModuleV2Fingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/microg/fingerprints/CastDynamiteModuleV2Fingerprint; +} + +public final class app/revanced/patches/music/utils/microg/fingerprints/GooglePlayUtilityFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/microg/fingerprints/GooglePlayUtilityFingerprint; +} + +public final class app/revanced/patches/music/utils/microg/fingerprints/PrimeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/microg/fingerprints/PrimeFingerprint; +} + +public final class app/revanced/patches/music/utils/microg/fingerprints/ServiceCheckFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/microg/fingerprints/ServiceCheckFingerprint; +} + +public final class app/revanced/patches/music/utils/overridequality/OverrideQualityHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/overridequality/OverrideQualityHookPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/overridequality/fingerprints/VideoQualityListFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/overridequality/fingerprints/VideoQualityListFingerprint; +} + +public final class app/revanced/patches/music/utils/overridequality/fingerprints/VideoQualityPatchFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/overridequality/fingerprints/VideoQualityPatchFingerprint; +} + +public final class app/revanced/patches/music/utils/overridequality/fingerprints/VideoQualityTextFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/overridequality/fingerprints/VideoQualityTextFingerprint; +} + +public final class app/revanced/patches/music/utils/overridespeed/OverrideSpeedHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/overridespeed/OverrideSpeedHookPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/overridespeed/fingerprints/PlaybackSpeedFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/overridespeed/fingerprints/PlaybackSpeedFingerprint; +} + +public final class app/revanced/patches/music/utils/overridespeed/fingerprints/PlaybackSpeedParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/overridespeed/fingerprints/PlaybackSpeedParentFingerprint; +} + +public final class app/revanced/patches/music/utils/overridespeed/fingerprints/PlaybackSpeedPatchFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/overridespeed/fingerprints/PlaybackSpeedPatchFingerprint; +} + +public final class app/revanced/patches/music/utils/playerresponse/PlayerResponsePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/playerresponse/PlayerResponsePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/playerresponse/fingerprints/PlaybackStartDescriptorFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/playerresponse/fingerprints/PlaybackStartDescriptorFingerprint; +} + +public final class app/revanced/patches/music/utils/playertype/PlayerTypeHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/playertype/PlayerTypeHookPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/playertype/fingerprint/PlayerTypeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/playertype/fingerprint/PlayerTypeFingerprint; +} + +public final class app/revanced/patches/music/utils/resourceid/SharedResourceIdPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/resourceid/SharedResourceIdPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V + public final fun getAccountSwitcherAccessibility ()J + public final fun getButtonContainer ()J + public final fun getButtonIconPaddingMedium ()J + public final fun getChipCloud ()J + public final fun getColorGrey ()J + public final fun getDesignBottomSheetDialog ()J + public final fun getDialogSolid ()J + public final fun getFloatingLayout ()J + public final fun getHistoryMenuItem ()J + public final fun getInlineTimeBarAdBreakMarkerColor ()J + public final fun getIsTablet ()J + public final fun getLikeDislikeContainer ()J + public final fun getMenuEntry ()J + public final fun getMiniPlayerMdxPlaying ()J + public final fun getMusicMenuLikeButtons ()J + public final fun getMusicNotifierShelf ()J + public final fun getMusicTastebuilderShelf ()J + public final fun getNamesInactiveAccountThumbnailSize ()J + public final fun getOfflineSettingsMenuItem ()J + public final fun getPlayerCastMediaRouteButton ()J + public final fun getPlayerOverlayChip ()J + public final fun getPrivacyTosFooter ()J + public final fun getQualityAuto ()J + public final fun getRemixGenericButtonSize ()J + public final fun getText1 ()J + public final fun getToolTipContentView ()J + public final fun getTosFooter ()J + public final fun setAccountSwitcherAccessibility (J)V + public final fun setButtonContainer (J)V + public final fun setButtonIconPaddingMedium (J)V + public final fun setChipCloud (J)V + public final fun setColorGrey (J)V + public final fun setDesignBottomSheetDialog (J)V + public final fun setDialogSolid (J)V + public final fun setFloatingLayout (J)V + public final fun setHistoryMenuItem (J)V + public final fun setInlineTimeBarAdBreakMarkerColor (J)V + public final fun setIsTablet (J)V + public final fun setLikeDislikeContainer (J)V + public final fun setMenuEntry (J)V + public final fun setMiniPlayerMdxPlaying (J)V + public final fun setMusicMenuLikeButtons (J)V + public final fun setMusicNotifierShelf (J)V + public final fun setMusicTastebuilderShelf (J)V + public final fun setNamesInactiveAccountThumbnailSize (J)V + public final fun setOfflineSettingsMenuItem (J)V + public final fun setPlayerCastMediaRouteButton (J)V + public final fun setPlayerOverlayChip (J)V + public final fun setPrivacyTosFooter (J)V + public final fun setQualityAuto (J)V + public final fun setRemixGenericButtonSize (J)V + public final fun setText1 (J)V + public final fun setToolTipContentView (J)V + public final fun setTosFooter (J)V +} + +public final class app/revanced/patches/music/utils/returnyoutubedislike/ReturnYouTubeDislikeBytecodePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/returnyoutubedislike/ReturnYouTubeDislikeBytecodePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/returnyoutubedislike/ReturnYouTubeDislikePatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/returnyoutubedislike/ReturnYouTubeDislikePatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/music/utils/returnyoutubedislike/fingerprints/DislikeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/returnyoutubedislike/fingerprints/DislikeFingerprint; +} + +public final class app/revanced/patches/music/utils/returnyoutubedislike/fingerprints/LikeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/returnyoutubedislike/fingerprints/LikeFingerprint; +} + +public final class app/revanced/patches/music/utils/returnyoutubedislike/fingerprints/RemoveLikeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/returnyoutubedislike/fingerprints/RemoveLikeFingerprint; +} + +public final class app/revanced/patches/music/utils/returnyoutubedislike/fingerprints/TextComponentFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/returnyoutubedislike/fingerprints/TextComponentFingerprint; +} + +public final class app/revanced/patches/music/utils/settings/CategoryType : java/lang/Enum { + public static final field ACCOUNT Lapp/revanced/patches/music/utils/settings/CategoryType; + public static final field ACTION_BAR Lapp/revanced/patches/music/utils/settings/CategoryType; + public static final field ADS Lapp/revanced/patches/music/utils/settings/CategoryType; + public static final field FLYOUT Lapp/revanced/patches/music/utils/settings/CategoryType; + public static final field GENERAL Lapp/revanced/patches/music/utils/settings/CategoryType; + public static final field MISC Lapp/revanced/patches/music/utils/settings/CategoryType; + public static final field NAVIGATION Lapp/revanced/patches/music/utils/settings/CategoryType; + public static final field PLAYER Lapp/revanced/patches/music/utils/settings/CategoryType; + public static final field VIDEO Lapp/revanced/patches/music/utils/settings/CategoryType; + public final fun getAdded ()Z + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public final fun setAdded (Z)V + public static fun valueOf (Ljava/lang/String;)Lapp/revanced/patches/music/utils/settings/CategoryType; + public static fun values ()[Lapp/revanced/patches/music/utils/settings/CategoryType; +} + +public final class app/revanced/patches/music/utils/settings/ResourceUtils { + public static final field INSTANCE Lapp/revanced/patches/music/utils/settings/ResourceUtils; + public static final field RETURN_YOUTUBE_DISLIKE_SETTINGS_KEY Ljava/lang/String; + public static final field YOUTUBE_MUSIC_PREFERENCE_SCREEN_TAG_NAME Ljava/lang/String; + public static final field YOUTUBE_MUSIC_PREFERENCE_TAG_NAME Ljava/lang/String; + public static final field YOUTUBE_MUSIC_PREFERENCE_TARGET_CLASS Ljava/lang/String; + public static final field YOUTUBE_MUSIC_SETTINGS_KEY Ljava/lang/String; + public static final field YOUTUBE_MUSIC_SETTINGS_PATH Ljava/lang/String; + public final fun addMicroGPreference (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun addMusicPreference (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun addMusicPreferenceCategory (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;)V + public final fun addMusicPreferenceWithIntent (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun addMusicPreferenceWithoutSummary (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun addReVancedMusicPreference (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;)V + public final fun getTargetPackage ()Ljava/lang/String; + public final fun hookPreference (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;Ljava/lang/String;)V + public final fun included (Ljava/lang/String;)Z + public final fun replacePackageName (Lapp/revanced/patcher/data/ResourceContext;)V + public final fun setMicroG (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;)V + public final fun setMusicPreferenceCategory (Ljava/lang/String;)V + public final fun setTargetPackage (Ljava/lang/String;)V + public final fun sortMusicPreferenceCategory (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;)V +} + +public final class app/revanced/patches/music/utils/settings/SettingsBytecodePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/settings/SettingsBytecodePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/settings/SettingsPatch : app/revanced/patches/shared/patch/settings/AbstractSettingsResourcePatch, java/io/Closeable { + public static final field INSTANCE Lapp/revanced/patches/music/utils/settings/SettingsPatch; + public static field contexts Lapp/revanced/patcher/data/ResourceContext; + public fun close ()V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V + public final fun getContexts ()Lapp/revanced/patcher/data/ResourceContext; + public final fun setContexts (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/music/utils/settings/fingerprints/PreferenceFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/settings/fingerprints/PreferenceFingerprint; +} + +public final class app/revanced/patches/music/utils/settings/fingerprints/SettingsHeadersFragmentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/settings/fingerprints/SettingsHeadersFragmentFingerprint; +} + +public final class app/revanced/patches/music/utils/sponsorblock/SponsorBlockBytecodePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/sponsorblock/SponsorBlockBytecodePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/sponsorblock/SponsorBlockPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/sponsorblock/SponsorBlockPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/music/utils/sponsorblock/bytecode/fingerprints/MusicPlaybackControlsTimeBarDrawFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/sponsorblock/bytecode/fingerprints/MusicPlaybackControlsTimeBarDrawFingerprint; +} + +public final class app/revanced/patches/music/utils/sponsorblock/bytecode/fingerprints/MusicPlaybackControlsTimeBarOnMeasureFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/sponsorblock/bytecode/fingerprints/MusicPlaybackControlsTimeBarOnMeasureFingerprint; +} + +public final class app/revanced/patches/music/utils/sponsorblock/bytecode/fingerprints/SeekbarOnDrawFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/sponsorblock/bytecode/fingerprints/SeekbarOnDrawFingerprint; +} + +public final class app/revanced/patches/music/utils/videotype/VideoTypeHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/utils/videotype/VideoTypeHookPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/utils/videotype/fingerprint/VideoTypeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/videotype/fingerprint/VideoTypeFingerprint; +} + +public final class app/revanced/patches/music/utils/videotype/fingerprint/VideoTypeParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/utils/videotype/fingerprint/VideoTypeParentFingerprint; +} + +public final class app/revanced/patches/music/video/customspeed/CustomPlaybackSpeedPatch : app/revanced/patches/shared/patch/customspeed/AbstractCustomPlaybackSpeedPatch { + public static final field INSTANCE Lapp/revanced/patches/music/video/customspeed/CustomPlaybackSpeedPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/video/information/VideoInformationPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/video/information/VideoInformationPatch; + public static field rectangleFieldName Ljava/lang/String; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public final fun getRectangleFieldName ()Ljava/lang/String; + public final fun setRectangleFieldName (Ljava/lang/String;)V +} + +public final class app/revanced/patches/music/video/information/fingerprints/BackgroundPlaybackVideoIdFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/video/information/fingerprints/BackgroundPlaybackVideoIdFingerprint; +} + +public final class app/revanced/patches/music/video/information/fingerprints/BackgroundPlaybackVideoIdParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/video/information/fingerprints/BackgroundPlaybackVideoIdParentFingerprint; +} + +public final class app/revanced/patches/music/video/information/fingerprints/PlayerControllerSetTimeReferenceFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/video/information/fingerprints/PlayerControllerSetTimeReferenceFingerprint; +} + +public final class app/revanced/patches/music/video/information/fingerprints/VideoEndFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/video/information/fingerprints/VideoEndFingerprint; +} + +public final class app/revanced/patches/music/video/information/fingerprints/VideoLengthFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/video/information/fingerprints/VideoLengthFingerprint; +} + +public final class app/revanced/patches/music/video/quality/VideoQualityPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/video/quality/VideoQualityPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/video/quality/fingerprints/UserQualityChangeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/video/quality/fingerprints/UserQualityChangeFingerprint; +} + +public final class app/revanced/patches/music/video/speed/PlaybackSpeedPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/music/video/speed/PlaybackSpeedPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/music/video/speed/fingerprints/PlaybackSpeedBottomSheetFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/video/speed/fingerprints/PlaybackSpeedBottomSheetFingerprint; +} + +public final class app/revanced/patches/music/video/speed/fingerprints/PlaybackSpeedBottomSheetParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/video/speed/fingerprints/PlaybackSpeedBottomSheetParentFingerprint; +} + +public final class app/revanced/patches/music/video/videoid/VideoIdPatch : app/revanced/patcher/patch/BytecodePatch, java/io/Closeable { + public static final field INSTANCE Lapp/revanced/patches/music/video/videoid/VideoIdPatch; + public fun close ()V + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public final fun hookBackgroundPlayVideoId (Ljava/lang/String;)V + public final fun hookVideoId (Ljava/lang/String;)V +} + +public final class app/revanced/patches/music/video/videoid/fingerprints/VideoIdParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/music/video/videoid/fingerprints/VideoIdParentFingerprint; +} + +public final class app/revanced/patches/reddit/ad/banner/HideBannerPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/ad/banner/HideBannerPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/reddit/ad/comments/HideCommentAdsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/ad/comments/HideCommentAdsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/reddit/ad/comments/fingerprints/HideCommentAdsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/ad/comments/fingerprints/HideCommentAdsFingerprint; +} + +public final class app/revanced/patches/reddit/ad/general/HideAdsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/ad/general/HideAdsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/reddit/ad/general/fingerprints/AdPostFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/ad/general/fingerprints/AdPostFingerprint; +} + +public final class app/revanced/patches/reddit/ad/general/fingerprints/NewAdPostFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/ad/general/fingerprints/NewAdPostFingerprint; +} + +public final class app/revanced/patches/reddit/layout/branding/name/CustomBrandingNamePatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/branding/name/CustomBrandingNamePatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/reddit/layout/branding/packagename/ChangePackageNamePatch : app/revanced/patcher/patch/ResourcePatch, java/io/Closeable { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/branding/packagename/ChangePackageNamePatch; + public fun close ()V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/reddit/layout/navigation/NavigationButtonsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/navigation/NavigationButtonsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/reddit/layout/navigation/fingerprints/BottomNavScreenFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/navigation/fingerprints/BottomNavScreenFingerprint; +} + +public final class app/revanced/patches/reddit/layout/premiumicon/PremiumIconPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/premiumicon/PremiumIconPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/reddit/layout/premiumicon/fingerprints/PremiumIconFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/premiumicon/fingerprints/PremiumIconFingerprint; +} + +public final class app/revanced/patches/reddit/layout/recentlyvisited/RecentlyVisitedShelfPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/recentlyvisited/RecentlyVisitedShelfPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/reddit/layout/recentlyvisited/fingerprints/CommunityDrawerPresenterFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/recentlyvisited/fingerprints/CommunityDrawerPresenterFingerprint; +} + +public final class app/revanced/patches/reddit/layout/screenshotpopup/ScreenshotPopupPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/screenshotpopup/ScreenshotPopupPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/reddit/layout/screenshotpopup/fingerprints/ScreenshotTakenBannerFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/screenshotpopup/fingerprints/ScreenshotTakenBannerFingerprint; +} + +public final class app/revanced/patches/reddit/layout/subredditdialog/RemoveSubRedditDialogPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/subredditdialog/RemoveSubRedditDialogPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/reddit/layout/subredditdialog/fingerprints/FrequentUpdatesSheetScreenFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/subredditdialog/fingerprints/FrequentUpdatesSheetScreenFingerprint; +} + +public final class app/revanced/patches/reddit/layout/subredditdialog/fingerprints/RedditAlertDialogsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/subredditdialog/fingerprints/RedditAlertDialogsFingerprint; +} + +public final class app/revanced/patches/reddit/layout/toolbar/ToolBarButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/toolbar/ToolBarButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/reddit/layout/toolbar/fingerprints/HomePagerScreenFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/layout/toolbar/fingerprints/HomePagerScreenFingerprint; +} + +public final class app/revanced/patches/reddit/misc/openlink/OpenLinksDirectlyPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/misc/openlink/OpenLinksDirectlyPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/reddit/misc/openlink/OpenLinksExternallyPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/misc/openlink/OpenLinksExternallyPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/reddit/misc/openlink/fingerprints/ScreenNavigatorFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/misc/openlink/fingerprints/ScreenNavigatorFingerprint; +} + +public final class app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/reddit/misc/tracking/url/fingerprints/ShareLinkFormatterFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/misc/tracking/url/fingerprints/ShareLinkFormatterFingerprint; +} + +public final class app/revanced/patches/reddit/utils/integrations/IntegrationsPatch : app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/utils/integrations/IntegrationsPatch; +} + +public final class app/revanced/patches/reddit/utils/integrations/fingerprints/InitFingerprint : app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/utils/integrations/fingerprints/InitFingerprint; +} + +public final class app/revanced/patches/reddit/utils/resourceid/SharedResourceIdPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/utils/resourceid/SharedResourceIdPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V + public final fun getCancelButton ()J + public final fun getLabelAcknowledgements ()J + public final fun getScreenShotShareBanner ()J + public final fun getTextAppearanceRedditBaseOldButtonColored ()J + public final fun getToolBarNavSearchCtaContainer ()J + public final fun setCancelButton (J)V + public final fun setLabelAcknowledgements (J)V + public final fun setScreenShotShareBanner (J)V + public final fun setTextAppearanceRedditBaseOldButtonColored (J)V + public final fun setToolBarNavSearchCtaContainer (J)V +} + +public final class app/revanced/patches/reddit/utils/settings/SettingsBytecodePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/utils/settings/SettingsBytecodePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/reddit/utils/settings/SettingsPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/reddit/utils/settings/SettingsPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/reddit/utils/settings/fingerprints/AcknowledgementsLabelBuilderFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/utils/settings/fingerprints/AcknowledgementsLabelBuilderFingerprint; +} + +public final class app/revanced/patches/reddit/utils/settings/fingerprints/OssLicensesMenuActivityOnCreateFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/utils/settings/fingerprints/OssLicensesMenuActivityOnCreateFingerprint; +} + +public final class app/revanced/patches/reddit/utils/settings/fingerprints/SettingsStatusLoadFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/reddit/utils/settings/fingerprints/SettingsStatusLoadFingerprint; +} + +public final class app/revanced/patches/shared/fingerprints/ads/LegacyAdsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/shared/fingerprints/ads/LegacyAdsFingerprint; +} + +public final class app/revanced/patches/shared/fingerprints/ads/MainstreamAdsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/shared/fingerprints/ads/MainstreamAdsFingerprint; +} + +public final class app/revanced/patches/shared/fingerprints/captions/StartVideoInformerFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/shared/fingerprints/captions/StartVideoInformerFingerprint; +} + +public final class app/revanced/patches/shared/fingerprints/captions/SubtitleTrackFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/shared/fingerprints/captions/SubtitleTrackFingerprint; +} + +public final class app/revanced/patches/shared/fingerprints/customspeed/SpeedArrayGeneratorFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/shared/fingerprints/customspeed/SpeedArrayGeneratorFingerprint; +} + +public final class app/revanced/patches/shared/fingerprints/customspeed/SpeedLimiterFallBackFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/shared/fingerprints/customspeed/SpeedLimiterFallBackFingerprint; +} + +public final class app/revanced/patches/shared/fingerprints/customspeed/SpeedLimiterFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/shared/fingerprints/customspeed/SpeedLimiterFingerprint; +} + +public final class app/revanced/patches/shared/fingerprints/litho/EmptyComponentBuilderFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/shared/fingerprints/litho/EmptyComponentBuilderFingerprint; +} + +public final class app/revanced/patches/shared/fingerprints/litho/LithoThemeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/shared/fingerprints/litho/LithoThemeFingerprint; +} + +public final class app/revanced/patches/shared/fingerprints/opus/CodecReferenceFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/shared/fingerprints/opus/CodecReferenceFingerprint; +} + +public final class app/revanced/patches/shared/fingerprints/opus/CodecSelectorFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/shared/fingerprints/opus/CodecSelectorFingerprint; +} + +public final class app/revanced/patches/shared/fingerprints/tracking/CopyTextEndpointFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/shared/fingerprints/tracking/CopyTextEndpointFingerprint; +} + +public final class app/revanced/patches/shared/fingerprints/versionspoof/ClientInfoFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/shared/fingerprints/versionspoof/ClientInfoFingerprint; +} + +public final class app/revanced/patches/shared/fingerprints/versionspoof/ClientInfoParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/shared/fingerprints/versionspoof/ClientInfoParentFingerprint; +} + +public abstract class app/revanced/patches/shared/patch/ads/AbstractAdsPatch : app/revanced/patcher/patch/BytecodePatch { + public fun (Ljava/lang/String;)V + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public abstract class app/revanced/patches/shared/patch/captions/AbstractAutoCaptionsPatch : app/revanced/patcher/patch/BytecodePatch { + public fun (Ljava/lang/String;)V + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public abstract class app/revanced/patches/shared/patch/customspeed/AbstractCustomPlaybackSpeedPatch : app/revanced/patcher/patch/BytecodePatch { + public fun (Ljava/lang/String;F)V + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public abstract class app/revanced/patches/shared/patch/dialog/AbstractRemoveViewerDiscretionDialogPatch : app/revanced/patcher/patch/BytecodePatch { + public fun (Ljava/lang/String;Ljava/util/Set;)V + public synthetic fun (Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public abstract class app/revanced/patches/shared/patch/elements/AbstractRemoveStringsElementsPatch : app/revanced/patcher/patch/ResourcePatch { + public fun ([Ljava/lang/String;[Ljava/lang/String;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public abstract class app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch : app/revanced/patcher/patch/BytecodePatch { + public fun (Ljava/lang/String;Ljava/util/Set;)V + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public abstract class app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun invoke (Ljava/lang/String;)V +} + +public abstract interface class app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint$RegisterResolver : kotlin/jvm/functions/Function1 { + public abstract fun invoke (Lcom/android/tools/smali/dexlib2/iface/Method;)Ljava/lang/Integer; +} + +public final class app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint$RegisterResolver$DefaultImpls { + public static fun invoke (Lapp/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint$RegisterResolver;Lcom/android/tools/smali/dexlib2/iface/Method;)Ljava/lang/Integer; +} + +public final class app/revanced/patches/shared/patch/litho/ComponentParserPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/shared/patch/litho/ComponentParserPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/shared/patch/litho/LithoThemePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/shared/patch/litho/LithoThemePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public final fun injectCall (Ljava/lang/String;)V +} + +public final class app/revanced/patches/shared/patch/mapping/ResourceMappingPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/shared/patch/mapping/ResourceMappingPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/shared/patch/mapping/ResourceMappingPatch$ResourceElement { + public fun (Ljava/lang/String;Ljava/lang/String;J)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()J + public final fun copy (Ljava/lang/String;Ljava/lang/String;J)Lapp/revanced/patches/shared/patch/mapping/ResourceMappingPatch$ResourceElement; + public static synthetic fun copy$default (Lapp/revanced/patches/shared/patch/mapping/ResourceMappingPatch$ResourceElement;Ljava/lang/String;Ljava/lang/String;JILjava/lang/Object;)Lapp/revanced/patches/shared/patch/mapping/ResourceMappingPatch$ResourceElement; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()J + public final fun getName ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class app/revanced/patches/shared/patch/mapping/ResourceType : java/lang/Enum { + public static final field ATTR Lapp/revanced/patches/shared/patch/mapping/ResourceType; + public static final field BOOL Lapp/revanced/patches/shared/patch/mapping/ResourceType; + public static final field COLOR Lapp/revanced/patches/shared/patch/mapping/ResourceType; + public static final field DIMEN Lapp/revanced/patches/shared/patch/mapping/ResourceType; + public static final field DRAWABLE Lapp/revanced/patches/shared/patch/mapping/ResourceType; + public static final field ID Lapp/revanced/patches/shared/patch/mapping/ResourceType; + public static final field LAYOUT Lapp/revanced/patches/shared/patch/mapping/ResourceType; + public static final field STRING Lapp/revanced/patches/shared/patch/mapping/ResourceType; + public static final field STYLE Lapp/revanced/patches/shared/patch/mapping/ResourceType; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lapp/revanced/patches/shared/patch/mapping/ResourceType; + public static fun values ()[Lapp/revanced/patches/shared/patch/mapping/ResourceType; +} + +public final class app/revanced/patches/shared/patch/microg/Constants { + public static final field INSTANCE Lapp/revanced/patches/shared/patch/microg/Constants; + public static final field META_GMS_PACKAGE_NAME Ljava/lang/String; + public static final field META_SPOOFED_PACKAGE_NAME Ljava/lang/String; + public static final field META_SPOOFED_PACKAGE_SIGNATURE Ljava/lang/String; + public static final field MICROG_PACKAGE_NAME Ljava/lang/String; + public static final field MICROG_VENDOR Ljava/lang/String; + public final fun getACTIONS ()Ljava/util/List; + public final fun getAUTHORITIES ()Ljava/util/List; + public final fun getPERMISSIONS ()Ljava/util/List; +} + +public final class app/revanced/patches/shared/patch/microg/MicroGBytecodeHelper { + public static final field INSTANCE Lapp/revanced/patches/shared/patch/microg/MicroGBytecodeHelper; + public final fun packageNameTransform (Ljava/lang/String;Ljava/lang/String;)Lkotlin/jvm/functions/Function1; + public final fun patchBytecode (Lapp/revanced/patcher/data/BytecodeContext;[Lkotlin/jvm/functions/Function1;Lapp/revanced/patches/shared/patch/microg/MicroGBytecodeHelper$PrimeMethodTransformationData;Ljava/util/List;)V +} + +public final class app/revanced/patches/shared/patch/microg/MicroGBytecodeHelper$PrimeMethodTransformationData { + public fun (Lapp/revanced/patcher/fingerprint/MethodFingerprint;Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Lapp/revanced/patcher/fingerprint/MethodFingerprint; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Lapp/revanced/patcher/fingerprint/MethodFingerprint;Ljava/lang/String;Ljava/lang/String;)Lapp/revanced/patches/shared/patch/microg/MicroGBytecodeHelper$PrimeMethodTransformationData; + public static synthetic fun copy$default (Lapp/revanced/patches/shared/patch/microg/MicroGBytecodeHelper$PrimeMethodTransformationData;Lapp/revanced/patcher/fingerprint/MethodFingerprint;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lapp/revanced/patches/shared/patch/microg/MicroGBytecodeHelper$PrimeMethodTransformationData; + public fun equals (Ljava/lang/Object;)Z + public final fun getFromPackageName ()Ljava/lang/String; + public final fun getPrimeMethodFingerprint ()Lapp/revanced/patcher/fingerprint/MethodFingerprint; + public final fun getToPackageName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public final fun transformPrimeMethodPackageName ()V +} + +public final class app/revanced/patches/shared/patch/microg/MicroGManifestHelper { + public static final field INSTANCE Lapp/revanced/patches/shared/patch/microg/MicroGManifestHelper; + public final fun addSpoofingMetadata (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;Ljava/lang/String;)V +} + +public final class app/revanced/patches/shared/patch/microg/MicroGResourceHelper { + public static final field INSTANCE Lapp/revanced/patches/shared/patch/microg/MicroGResourceHelper; + public final fun patchManifest (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;Ljava/lang/String;)V + public final fun patchSetting (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;Ljava/lang/String;)V +} + +public abstract class app/revanced/patches/shared/patch/opus/AbstractOpusCodecsPatch : app/revanced/patcher/patch/BytecodePatch { + public field targetReference Lcom/android/tools/smali/dexlib2/iface/reference/Reference; + public fun (Ljava/lang/String;)V + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public final fun getTargetReference ()Lcom/android/tools/smali/dexlib2/iface/reference/Reference; + public final fun setTargetReference (Lcom/android/tools/smali/dexlib2/iface/reference/Reference;)V +} + +public abstract class app/revanced/patches/shared/patch/overlaybackground/AbstractOverlayBackgroundPatch : app/revanced/patcher/patch/ResourcePatch { + public fun ([Ljava/lang/String;[Ljava/lang/String;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/shared/patch/packagename/PackageNamePatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/shared/patch/packagename/PackageNamePatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public abstract class app/revanced/patches/shared/patch/settings/AbstractSettingsResourcePatch : app/revanced/patcher/patch/ResourcePatch { + public fun (Ljava/lang/String;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public abstract class app/revanced/patches/shared/patch/tracking/AbstractSanitizeUrlQueryPatch : app/revanced/patcher/patch/BytecodePatch { + public fun (Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V + public synthetic fun (Ljava/lang/String;Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public abstract class app/revanced/patches/shared/patch/transformation/AbstractTransformInstructionsPatch : app/revanced/patcher/patch/BytecodePatch { + public fun ()V + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public abstract fun filterMap (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/iface/instruction/Instruction;I)Ljava/lang/Object; + public final fun findPatchIndices (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;)Lkotlin/sequences/Sequence; + public abstract fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Ljava/lang/Object;)V +} + +public abstract class app/revanced/patches/shared/patch/translations/AbstractTranslationsPatch : app/revanced/patcher/patch/ResourcePatch { + public fun (Ljava/lang/String;[Ljava/lang/String;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public abstract class app/revanced/patches/shared/patch/versionspoof/AbstractVersionSpoofPatch : app/revanced/patcher/patch/BytecodePatch { + public fun (Ljava/lang/String;)V + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public abstract class app/revanced/patches/shared/patch/voicesearch/AbstractVoiceSearchButtonPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field IMAGE_VIEW_TAG Ljava/lang/String; + public static final field VOICE_SEARCH_ID Ljava/lang/String; + public fun ([Ljava/lang/String;[Ljava/lang/String;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/ads/general/GeneralAdsBytecodePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/ads/general/GeneralAdsBytecodePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/ads/general/GeneralAdsPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/ads/general/GeneralAdsPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/ads/getpremium/HideGetPremiumPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/ads/getpremium/HideGetPremiumPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/ads/getpremium/fingerprints/CompactYpcOfferModuleViewFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/ads/getpremium/fingerprints/CompactYpcOfferModuleViewFingerprint; +} + +public final class app/revanced/patches/youtube/ads/video/VideoAdsPatch : app/revanced/patches/shared/patch/ads/AbstractAdsPatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/ads/video/VideoAdsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/alternativethumbnails/general/AlternativeThumbnailsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/alternativethumbnails/general/AlternativeThumbnailsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/buttomplayer/buttoncontainer/ButtonContainerPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/buttomplayer/buttoncontainer/ButtonContainerPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/buttomplayer/comment/CommentComponentPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/buttomplayer/comment/CommentComponentPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/buttomplayer/comment/fingerprints/ShortsLiveStreamEmojiPickerOnClickListenerFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/buttomplayer/comment/fingerprints/ShortsLiveStreamEmojiPickerOnClickListenerFingerprint; +} + +public final class app/revanced/patches/youtube/buttomplayer/comment/fingerprints/ShortsLiveStreamEmojiPickerOpacityFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/buttomplayer/comment/fingerprints/ShortsLiveStreamEmojiPickerOpacityFingerprint; +} + +public final class app/revanced/patches/youtube/buttomplayer/comment/fingerprints/ShortsLiveStreamThanksFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/buttomplayer/comment/fingerprints/ShortsLiveStreamThanksFingerprint; +} + +public final class app/revanced/patches/youtube/buttomplayer/gestures/BottomPlayerGesturesPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/buttomplayer/gestures/BottomPlayerGesturesPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/buttomplayer/gestures/fingerprints/BottomPlayerGesturesFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/buttomplayer/gestures/fingerprints/BottomPlayerGesturesFingerprint; +} + +public final class app/revanced/patches/youtube/flyoutpanel/feed/FeedFlyoutPanelPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/feed/FeedFlyoutPanelPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/flyoutpanel/feed/fingerprints/BottomSheetMenuItemBuilderFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/feed/fingerprints/BottomSheetMenuItemBuilderFingerprint; +} + +public final class app/revanced/patches/youtube/flyoutpanel/feed/fingerprints/ContextualMenuItemBuilderFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/feed/fingerprints/ContextualMenuItemBuilderFingerprint; +} + +public final class app/revanced/patches/youtube/flyoutpanel/oldqualitylayout/OldQualityLayoutPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/oldqualitylayout/OldQualityLayoutPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/flyoutpanel/oldspeedlayout/OldSpeedLayoutPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/oldspeedlayout/OldSpeedLayoutPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/flyoutpanel/oldspeedlayout/fingerprints/CustomPlaybackSpeedIntegrationsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/oldspeedlayout/fingerprints/CustomPlaybackSpeedIntegrationsFingerprint; +} + +public final class app/revanced/patches/youtube/flyoutpanel/oldspeedlayout/fingerprints/PlaybackRateBottomSheetClassFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/oldspeedlayout/fingerprints/PlaybackRateBottomSheetClassFingerprint; +} + +public final class app/revanced/patches/youtube/flyoutpanel/player/ChangeTogglePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/player/ChangeTogglePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/flyoutpanel/player/PlayerFlyoutPanelPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/player/PlayerFlyoutPanelPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/flyoutpanel/player/fingerprints/AdditionalSettingsConfigFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/player/fingerprints/AdditionalSettingsConfigFingerprint; +} + +public final class app/revanced/patches/youtube/flyoutpanel/player/fingerprints/AdvancedQualityBottomSheetFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/player/fingerprints/AdvancedQualityBottomSheetFingerprint; +} + +public final class app/revanced/patches/youtube/flyoutpanel/player/fingerprints/CaptionsBottomSheetFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/player/fingerprints/CaptionsBottomSheetFingerprint; +} + +public final class app/revanced/patches/youtube/flyoutpanel/player/fingerprints/CinematicLightingFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/player/fingerprints/CinematicLightingFingerprint; +} + +public final class app/revanced/patches/youtube/flyoutpanel/player/fingerprints/PlaybackLoopInitFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/player/fingerprints/PlaybackLoopInitFingerprint; +} + +public final class app/revanced/patches/youtube/flyoutpanel/player/fingerprints/PlaybackLoopOnClickListenerFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/player/fingerprints/PlaybackLoopOnClickListenerFingerprint; +} + +public final class app/revanced/patches/youtube/flyoutpanel/player/fingerprints/StableVolumeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/player/fingerprints/StableVolumeFingerprint; +} + +public final class app/revanced/patches/youtube/flyoutpanel/recyclerview/BottomSheetRecyclerViewPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/recyclerview/BottomSheetRecyclerViewPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/flyoutpanel/recyclerview/fingerprints/BottomSheetRecyclerViewBuilderFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/flyoutpanel/recyclerview/fingerprints/BottomSheetRecyclerViewBuilderFingerprint; +} + +public final class app/revanced/patches/youtube/fullscreen/autoplaypreview/HideAutoplayPreviewPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/autoplaypreview/HideAutoplayPreviewPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/fullscreen/compactcontrolsoverlay/CompactControlsOverlayPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/compactcontrolsoverlay/CompactControlsOverlayPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/fullscreen/endscreenoverlay/HideEndScreenOverlayPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/endscreenoverlay/HideEndScreenOverlayPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/fullscreen/endscreenoverlay/fingerprints/EndScreenResultsParentFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/endscreenoverlay/fingerprints/EndScreenResultsParentFingerprint; +} + +public final class app/revanced/patches/youtube/fullscreen/forcefullscreen/ForceFullscreenPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/forcefullscreen/ForceFullscreenPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/fullscreen/forcefullscreen/fingerprints/ClientSettingEndpointFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/forcefullscreen/fingerprints/ClientSettingEndpointFingerprint; +} + +public final class app/revanced/patches/youtube/fullscreen/forcefullscreen/fingerprints/VideoPortraitParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/forcefullscreen/fingerprints/VideoPortraitParentFingerprint; +} + +public final class app/revanced/patches/youtube/fullscreen/fullscreenpanels/HideFullscreenPanelsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/fullscreenpanels/HideFullscreenPanelsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/fullscreen/fullscreenpanels/fingerprints/FullscreenEngagementPanelFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/fullscreenpanels/fingerprints/FullscreenEngagementPanelFingerprint; +} + +public final class app/revanced/patches/youtube/fullscreen/fullscreenpanels/fingerprints/FullscreenViewAdderFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/fullscreenpanels/fingerprints/FullscreenViewAdderFingerprint; +} + +public final class app/revanced/patches/youtube/fullscreen/landscapemode/disable/DisableLandScapeModePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/landscapemode/disable/DisableLandScapeModePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/fullscreen/landscapemode/disable/fingerprints/OrientationParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/landscapemode/disable/fingerprints/OrientationParentFingerprint; +} + +public final class app/revanced/patches/youtube/fullscreen/landscapemode/disable/fingerprints/OrientationPrimaryFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/landscapemode/disable/fingerprints/OrientationPrimaryFingerprint; +} + +public final class app/revanced/patches/youtube/fullscreen/landscapemode/disable/fingerprints/OrientationSecondaryFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/landscapemode/disable/fingerprints/OrientationSecondaryFingerprint; +} + +public final class app/revanced/patches/youtube/fullscreen/landscapemode/keep/KeepLandScapeModePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/landscapemode/keep/KeepLandScapeModePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/fullscreen/landscapemode/keep/fingerprints/BroadcastReceiverFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/landscapemode/keep/fingerprints/BroadcastReceiverFingerprint; +} + +public final class app/revanced/patches/youtube/fullscreen/landscapemode/keep/fingerprints/LandScapeModeConfigFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/landscapemode/keep/fingerprints/LandScapeModeConfigFingerprint; +} + +public final class app/revanced/patches/youtube/fullscreen/quickactions/QuickActionsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/fullscreen/quickactions/QuickActionsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/accountmenu/AccountMenuPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/accountmenu/AccountMenuPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/accountmenu/fingerprints/AccountListFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/accountmenu/fingerprints/AccountListFingerprint; +} + +public final class app/revanced/patches/youtube/general/accountmenu/fingerprints/AccountListParentFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/accountmenu/fingerprints/AccountListParentFingerprint; +} + +public final class app/revanced/patches/youtube/general/accountmenu/fingerprints/AccountMenuFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/accountmenu/fingerprints/AccountMenuFingerprint; +} + +public final class app/revanced/patches/youtube/general/accountmenu/fingerprints/AccountMenuParentFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/accountmenu/fingerprints/AccountMenuParentFingerprint; +} + +public final class app/revanced/patches/youtube/general/accountmenu/fingerprints/AccountMenuPatchFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/accountmenu/fingerprints/AccountMenuPatchFingerprint; +} + +public final class app/revanced/patches/youtube/general/accountmenu/fingerprints/SetViewGroupMarginFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/accountmenu/fingerprints/SetViewGroupMarginFingerprint; +} + +public final class app/revanced/patches/youtube/general/autocaptions/AutoCaptionsPatch : app/revanced/patches/shared/patch/captions/AbstractAutoCaptionsPatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/autocaptions/AutoCaptionsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/autopopuppanels/PlayerPopupPanelsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/autopopuppanels/PlayerPopupPanelsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/autopopuppanels/fingerprints/EngagementPanelControllerFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/autopopuppanels/fingerprints/EngagementPanelControllerFingerprint; +} + +public final class app/revanced/patches/youtube/general/castbutton/HideCastButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/castbutton/HideCastButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/castbutton/fingerprints/CastButtonFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/castbutton/fingerprints/CastButtonFingerprint; +} + +public final class app/revanced/patches/youtube/general/categorybar/CategoryBarPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/categorybar/CategoryBarPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/categorybar/fingerprints/FilterBarHeightFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/categorybar/fingerprints/FilterBarHeightFingerprint; +} + +public final class app/revanced/patches/youtube/general/categorybar/fingerprints/RelatedChipCloudFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/categorybar/fingerprints/RelatedChipCloudFingerprint; +} + +public final class app/revanced/patches/youtube/general/categorybar/fingerprints/SearchResultsChipBarFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/categorybar/fingerprints/SearchResultsChipBarFingerprint; +} + +public final class app/revanced/patches/youtube/general/channellistsubmenu/ChannelListSubMenuPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/channellistsubmenu/ChannelListSubMenuPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/channellistsubmenu/fingerprints/ChannelListSubMenuFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/channellistsubmenu/fingerprints/ChannelListSubMenuFingerprint; +} + +public final class app/revanced/patches/youtube/general/channelprofile/ChannelProfileComponentsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/channelprofile/ChannelProfileComponentsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/channelprofile/fingerprints/DefaultsTabsBarFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/channelprofile/fingerprints/DefaultsTabsBarFingerprint; +} + +public final class app/revanced/patches/youtube/general/crowdfundingbox/CrowdfundingBoxPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/crowdfundingbox/CrowdfundingBoxPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/crowdfundingbox/fingerprints/CrowdfundingBoxFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/crowdfundingbox/fingerprints/CrowdfundingBoxFingerprint; +} + +public final class app/revanced/patches/youtube/general/descriptions/DescriptionComponentsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/descriptions/DescriptionComponentsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/dialog/RemoveViewerDiscretionDialogPatch : app/revanced/patches/shared/patch/dialog/AbstractRemoveViewerDiscretionDialogPatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/dialog/RemoveViewerDiscretionDialogPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/dialog/fingerprints/AgeVerifiedFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/dialog/fingerprints/AgeVerifiedFingerprint; +} + +public final class app/revanced/patches/youtube/general/floatingmicrophone/FloatingMicrophonePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/floatingmicrophone/FloatingMicrophonePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/floatingmicrophone/fingerprints/FloatingMicrophoneFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/floatingmicrophone/fingerprints/FloatingMicrophoneFingerprint; +} + +public final class app/revanced/patches/youtube/general/handle/HideHandlePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/handle/HideHandlePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/handle/fingerprints/AccountSwitcherAccessibilityLabelFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/handle/fingerprints/AccountSwitcherAccessibilityLabelFingerprint; +} + +public final class app/revanced/patches/youtube/general/headerswitch/HeaderSwitchPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/headerswitch/HeaderSwitchPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/latestvideosbutton/LatestVideosButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/latestvideosbutton/LatestVideosButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/latestvideosbutton/fingerprints/LatestVideosButtonFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/latestvideosbutton/fingerprints/LatestVideosButtonFingerprint; +} + +public final class app/revanced/patches/youtube/general/layout/LayoutComponentsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/layout/LayoutComponentsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/loadingscreen/GradientLoadingScreenPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/loadingscreen/GradientLoadingScreenPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/loadingscreen/fingerprints/GradientLoadingScreenPrimaryFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/loadingscreen/fingerprints/GradientLoadingScreenPrimaryFingerprint; +} + +public final class app/revanced/patches/youtube/general/loadingscreen/fingerprints/GradientLoadingScreenSecondaryFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/loadingscreen/fingerprints/GradientLoadingScreenSecondaryFingerprint; +} + +public final class app/revanced/patches/youtube/general/loadmorebutton/LoadMoreButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/loadmorebutton/LoadMoreButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/loadmorebutton/fingerprints/LoadMoreButtonFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/loadmorebutton/fingerprints/LoadMoreButtonFingerprint; +} + +public final class app/revanced/patches/youtube/general/mixplaylists/MixPlaylistsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/mixplaylists/MixPlaylistsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/mixplaylists/fingerprints/ElementParserFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/mixplaylists/fingerprints/ElementParserFingerprint; +} + +public final class app/revanced/patches/youtube/general/mixplaylists/fingerprints/EmptyFlatBufferFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/mixplaylists/fingerprints/EmptyFlatBufferFingerprint; +} + +public final class app/revanced/patches/youtube/general/rollingnumber/DisableRollingNumberAnimationPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/rollingnumber/DisableRollingNumberAnimationPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/searchterm/SearchTermThumbnailPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/searchterm/SearchTermThumbnailPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/searchterm/fingerprints/CreateSearchSuggestionsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/searchterm/fingerprints/CreateSearchSuggestionsFingerprint; +} + +public final class app/revanced/patches/youtube/general/snackbar/HideSnackBarPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/snackbar/HideSnackBarPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/snackbar/fingerprints/HideSnackBarFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/snackbar/fingerprints/HideSnackBarFingerprint; +} + +public final class app/revanced/patches/youtube/general/songsearch/SongSearchPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/songsearch/SongSearchPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/songsearch/fingerprints/VoiceSearchConfigFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/songsearch/fingerprints/VoiceSearchConfigFingerprint; +} + +public final class app/revanced/patches/youtube/general/startpage/ChangeStartPagePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/startpage/ChangeStartPagePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/startpage/fingerprints/StartActivityFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/startpage/fingerprints/StartActivityFingerprint; +} + +public final class app/revanced/patches/youtube/general/suggestions/SuggestionsShelfPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/suggestions/SuggestionsShelfPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/suggestions/fingerprints/BreakingNewsFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/suggestions/fingerprints/BreakingNewsFingerprint; +} + +public final class app/revanced/patches/youtube/general/tabletminiplayer/TabletMiniPlayerPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/tabletminiplayer/TabletMiniPlayerPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/tabletminiplayer/fingerprints/MiniPlayerDimensionsCalculatorFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/tabletminiplayer/fingerprints/MiniPlayerDimensionsCalculatorFingerprint; +} + +public final class app/revanced/patches/youtube/general/tabletminiplayer/fingerprints/MiniPlayerOverrideFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/tabletminiplayer/fingerprints/MiniPlayerOverrideFingerprint; +} + +public final class app/revanced/patches/youtube/general/tabletminiplayer/fingerprints/MiniPlayerOverrideNoContextFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/tabletminiplayer/fingerprints/MiniPlayerOverrideNoContextFingerprint; +} + +public final class app/revanced/patches/youtube/general/tabletminiplayer/fingerprints/MiniPlayerResponseModelSizeCheckFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/tabletminiplayer/fingerprints/MiniPlayerResponseModelSizeCheckFingerprint; +} + +public final class app/revanced/patches/youtube/general/toolbar/ToolBarButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/toolbar/ToolBarButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/trendingsearches/TrendingSearchesPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/trendingsearches/TrendingSearchesPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/trendingsearches/fingerprints/SearchBarEntryFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/trendingsearches/fingerprints/SearchBarEntryFingerprint; +} + +public final class app/revanced/patches/youtube/general/widesearchbar/WideSearchBarPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/widesearchbar/WideSearchBarPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/general/widesearchbar/fingerprints/SetActionBarRingoFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/widesearchbar/fingerprints/SetActionBarRingoFingerprint; +} + +public final class app/revanced/patches/youtube/general/widesearchbar/fingerprints/SetWordMarkHeaderFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/widesearchbar/fingerprints/SetWordMarkHeaderFingerprint; +} + +public final class app/revanced/patches/youtube/general/widesearchbar/fingerprints/YouActionBarFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/general/widesearchbar/fingerprints/YouActionBarFingerprint; +} + +public final class app/revanced/patches/youtube/layout/animated/AnimatedButtonBackgroundPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/animated/AnimatedButtonBackgroundPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/layout/animated/AnimatedLikePatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/animated/AnimatedLikePatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/layout/branding/icon/CustomBrandingIconPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/branding/icon/CustomBrandingIconPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/layout/branding/name/CustomBrandingNamePatch : app/revanced/patches/shared/patch/elements/AbstractRemoveStringsElementsPatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/branding/name/CustomBrandingNamePatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/layout/doubletapbackground/DoubleTapOverlayBackgroundPatch : app/revanced/patches/shared/patch/overlaybackground/AbstractOverlayBackgroundPatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/doubletapbackground/DoubleTapOverlayBackgroundPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/layout/doubletaplength/DoubleTapLengthPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/doubletaplength/DoubleTapLengthPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/layout/header/CustomBrandingHeadingPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/header/CustomBrandingHeadingPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/layout/materialyou/MaterialYouPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/materialyou/MaterialYouPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/layout/pipnotification/PiPNotificationPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/pipnotification/PiPNotificationPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/layout/pipnotification/fingerprints/PiPNotificationFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/pipnotification/fingerprints/PiPNotificationFingerprint; +} + +public final class app/revanced/patches/youtube/layout/splashanimation/AddSplashAnimationPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/splashanimation/AddSplashAnimationPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/layout/theme/GeneralThemePatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/theme/GeneralThemePatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/layout/theme/ThemePatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/theme/ThemePatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/layout/tooltip/TooltipContentViewPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/tooltip/TooltipContentViewPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/layout/tooltip/fingerprints/TooltipContentViewFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/tooltip/fingerprints/TooltipContentViewFingerprint; +} + +public final class app/revanced/patches/youtube/layout/voicesearch/VoiceSearchButtonPatch : app/revanced/patches/shared/patch/voicesearch/AbstractVoiceSearchButtonPatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/layout/voicesearch/VoiceSearchButtonPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/misc/ambientmode/AmbientModeSwitchPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/ambientmode/AmbientModeSwitchPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/misc/ambientmode/fingerprints/AmbientModeInFullscreenFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/ambientmode/fingerprints/AmbientModeInFullscreenFingerprint; +} + +public final class app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeFingerprint; +} + +public final class app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeOneFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeOneFingerprint; +} + +public final class app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeTwoFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeTwoFingerprint; +} + +public final class app/revanced/patches/youtube/misc/codec/audio/ForceOpusCodecPatch : app/revanced/patches/shared/patch/opus/AbstractOpusCodecsPatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/codec/audio/ForceOpusCodecPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/misc/codec/video/ForceVideoCodecPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/codec/video/ForceVideoCodecPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/misc/codec/video/fingerprints/VideoPrimaryFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/codec/video/fingerprints/VideoPrimaryFingerprint; +} + +public final class app/revanced/patches/youtube/misc/codec/video/fingerprints/VideoPropsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/codec/video/fingerprints/VideoPropsFingerprint; +} + +public final class app/revanced/patches/youtube/misc/codec/video/fingerprints/VideoPropsParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/codec/video/fingerprints/VideoPropsParentFingerprint; +} + +public final class app/revanced/patches/youtube/misc/codec/video/fingerprints/VideoSecondaryFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/codec/video/fingerprints/VideoSecondaryFingerprint; +} + +public final class app/revanced/patches/youtube/misc/debugging/DebuggingPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/debugging/DebuggingPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/misc/externalbrowser/ExternalBrowserPatch : app/revanced/patches/shared/patch/transformation/AbstractTransformInstructionsPatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/externalbrowser/ExternalBrowserPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public synthetic fun filterMap (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/iface/instruction/Instruction;I)Ljava/lang/Object; + public fun filterMap (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/iface/instruction/Instruction;I)Lkotlin/Pair; + public synthetic fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Ljava/lang/Object;)V + public fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Lkotlin/Pair;)V +} + +public final class app/revanced/patches/youtube/misc/language/LanguageSelectorPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/language/LanguageSelectorPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/misc/language/fingerprints/GeneralPrefsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/language/fingerprints/GeneralPrefsFingerprint; +} + +public final class app/revanced/patches/youtube/misc/language/fingerprints/GeneralPrefsLegacyFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/language/fingerprints/GeneralPrefsLegacyFingerprint; +} + +public final class app/revanced/patches/youtube/misc/layoutswitch/LayoutSwitchPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/layoutswitch/LayoutSwitchPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/misc/layoutswitch/fingerprints/GetFormFactorFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/layoutswitch/fingerprints/GetFormFactorFingerprint; +} + +public final class app/revanced/patches/youtube/misc/minimizedplayback/MinimizedPlaybackPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/minimizedplayback/MinimizedPlaybackPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/KidsMinimizedPlaybackPolicyControllerFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/minimizedplayback/fingerprints/KidsMinimizedPlaybackPolicyControllerFingerprint; +} + +public final class app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint; +} + +public final class app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsFingerprint; +} + +public final class app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/PiPControllerFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/minimizedplayback/fingerprints/PiPControllerFingerprint; +} + +public final class app/revanced/patches/youtube/misc/openlinksdirectly/OpenLinksDirectlyPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/openlinksdirectly/OpenLinksDirectlyPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/misc/openlinksdirectly/fingerprints/OpenLinksDirectlyFingerprintPrimary : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/openlinksdirectly/fingerprints/OpenLinksDirectlyFingerprintPrimary; +} + +public final class app/revanced/patches/youtube/misc/openlinksdirectly/fingerprints/OpenLinksDirectlyFingerprintSecondary : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/openlinksdirectly/fingerprints/OpenLinksDirectlyFingerprintSecondary; +} + +public final class app/revanced/patches/youtube/misc/quic/QUICProtocolPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/quic/QUICProtocolPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/misc/quic/fingerprints/CronetEngineBuilderFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/quic/fingerprints/CronetEngineBuilderFingerprint; +} + +public final class app/revanced/patches/youtube/misc/quic/fingerprints/ExperimentalCronetEngineBuilderFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/quic/fingerprints/ExperimentalCronetEngineBuilderFingerprint; +} + +public final class app/revanced/patches/youtube/misc/splashanimation/NewSplashAnimationPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/splashanimation/NewSplashAnimationPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/misc/splashanimation/fingerprints/WatchWhileActivityWithInFlagsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/splashanimation/fingerprints/WatchWhileActivityWithInFlagsFingerprint; +} + +public final class app/revanced/patches/youtube/misc/splashanimation/fingerprints/WatchWhileActivityWithOutFlagsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/splashanimation/fingerprints/WatchWhileActivityWithOutFlagsFingerprint; +} + +public final class app/revanced/patches/youtube/misc/spoofappversion/SpoofAppVersionPatch : app/revanced/patches/shared/patch/versionspoof/AbstractVersionSpoofPatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/spoofappversion/SpoofAppVersionPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/misc/spoofdimensions/SpoofDeviceDimensionsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/spoofdimensions/SpoofDeviceDimensionsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/misc/spoofdimensions/fingerprints/DeviceDimensionsModelToStringFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/spoofdimensions/fingerprints/DeviceDimensionsModelToStringFingerprint; +} + +public final class app/revanced/patches/youtube/misc/tracking/SanitizeUrlQueryPatch : app/revanced/patches/shared/patch/tracking/AbstractSanitizeUrlQueryPatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/tracking/SanitizeUrlQueryPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/misc/tracking/fingerprints/ShareLinkFormatterFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/tracking/fingerprints/ShareLinkFormatterFingerprint; +} + +public final class app/revanced/patches/youtube/misc/tracking/fingerprints/SystemShareLinkFormatterFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/tracking/fingerprints/SystemShareLinkFormatterFingerprint; +} + +public final class app/revanced/patches/youtube/misc/translations/TranslationsPatch : app/revanced/patches/shared/patch/translations/AbstractTranslationsPatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/translations/TranslationsPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/misc/updatescreen/UpdateScreenPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/updatescreen/UpdateScreenPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/misc/updatescreen/fingerprints/AppBlockingCheckResultToStringFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/updatescreen/fingerprints/AppBlockingCheckResultToStringFingerprint; +} + +public final class app/revanced/patches/youtube/navigation/label/NavigationLabelPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/navigation/label/NavigationLabelPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/navigation/label/fingerprints/PivotBarSetTextFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/navigation/label/fingerprints/PivotBarSetTextFingerprint; +} + +public final class app/revanced/patches/youtube/navigation/navigationbuttons/NavigationButtonsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/navigation/navigationbuttons/NavigationButtonsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/navigation/navigationbuttons/fingerprints/AutoMotiveFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/navigation/navigationbuttons/fingerprints/AutoMotiveFingerprint; +} + +public final class app/revanced/patches/youtube/navigation/navigationbuttons/fingerprints/PivotBarEnumFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/navigation/navigationbuttons/fingerprints/PivotBarEnumFingerprint; +} + +public final class app/revanced/patches/youtube/navigation/navigationbuttons/fingerprints/PivotBarShortsButtonViewFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/navigation/navigationbuttons/fingerprints/PivotBarShortsButtonViewFingerprint; +} + +public final class app/revanced/patches/youtube/navigation/tabletnavbar/TabletNavigationBarPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/navigation/tabletnavbar/TabletNavigationBarPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/navigation/tabletnavbar/fingerprints/PivotBarChangedFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/navigation/tabletnavbar/fingerprints/PivotBarChangedFingerprint; +} + +public final class app/revanced/patches/youtube/navigation/tabletnavbar/fingerprints/PivotBarStyleFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/navigation/tabletnavbar/fingerprints/PivotBarStyleFingerprint; +} + +public final class app/revanced/patches/youtube/overlaybutton/alwaysrepeat/AlwaysRepeatPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/overlaybutton/alwaysrepeat/AlwaysRepeatPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/overlaybutton/alwaysrepeat/fingerprints/AutoNavInformerFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/overlaybutton/alwaysrepeat/fingerprints/AutoNavInformerFingerprint; +} + +public final class app/revanced/patches/youtube/overlaybutton/download/hook/DownloadButtonHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/overlaybutton/download/hook/DownloadButtonHookPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/overlaybutton/download/hook/fingerprints/PlaylistOfflineDownloadOnClickFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/overlaybutton/download/hook/fingerprints/PlaylistOfflineDownloadOnClickFingerprint; +} + +public final class app/revanced/patches/youtube/overlaybutton/download/pip/DisablePiPPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/overlaybutton/download/pip/DisablePiPPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/overlaybutton/download/pip/fingerprints/PiPPlaybackFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/overlaybutton/download/pip/fingerprints/PiPPlaybackFingerprint; +} + +public final class app/revanced/patches/youtube/overlaybutton/general/OverlayButtonsPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/overlaybutton/general/OverlayButtonsPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/overlaybutton/whitelist/WhitelistPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/overlaybutton/whitelist/WhitelistPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/overlaybutton/whitelist/fingerprints/ChannelNameFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/overlaybutton/whitelist/fingerprints/ChannelNameFingerprint; +} + +public final class app/revanced/patches/youtube/overlaybutton/whitelist/fingerprints/PlayerResponseModelFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/overlaybutton/whitelist/fingerprints/PlayerResponseModelFingerprint; +} + +public final class app/revanced/patches/youtube/overlaybutton/whitelist/fingerprints/PrimaryInjectFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/overlaybutton/whitelist/fingerprints/PrimaryInjectFingerprint; +} + +public final class app/revanced/patches/youtube/overlaybutton/whitelist/fingerprints/SecondaryInjectFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/overlaybutton/whitelist/fingerprints/SecondaryInjectFingerprint; +} + +public final class app/revanced/patches/youtube/player/autoplaybutton/HideAutoplayButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/autoplaybutton/HideAutoplayButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/player/captionsbutton/HideCaptionsButtonBytecodePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/captionsbutton/HideCaptionsButtonBytecodePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/player/captionsbutton/fingerprints/LithoSubtitleButtonConfigFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/captionsbutton/fingerprints/LithoSubtitleButtonConfigFingerprint; +} + +public final class app/revanced/patches/youtube/player/captionsbutton/fingerprints/YouTubeControlsOverlaySubtitleButtonFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/captionsbutton/fingerprints/YouTubeControlsOverlaySubtitleButtonFingerprint; +} + +public final class app/revanced/patches/youtube/player/chapters/HideChapterInfoPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/chapters/HideChapterInfoPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/player/collapsebutton/HideCollapseButtonPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/collapsebutton/HideCollapseButtonPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/player/endscreencards/HideEndScreenCardsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/endscreencards/HideEndScreenCardsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/player/endscreencards/fingerprints/LayoutCircleFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/endscreencards/fingerprints/LayoutCircleFingerprint; +} + +public final class app/revanced/patches/youtube/player/endscreencards/fingerprints/LayoutIconFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/endscreencards/fingerprints/LayoutIconFingerprint; +} + +public final class app/revanced/patches/youtube/player/endscreencards/fingerprints/LayoutVideoFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/endscreencards/fingerprints/LayoutVideoFingerprint; +} + +public final class app/revanced/patches/youtube/player/filmstripoverlay/HideFilmstripOverlayPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/filmstripoverlay/HideFilmstripOverlayPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/player/filmstripoverlay/fingerprints/FilmStripOverlayConfigFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/filmstripoverlay/fingerprints/FilmStripOverlayConfigFingerprint; +} + +public final class app/revanced/patches/youtube/player/filmstripoverlay/fingerprints/FilmStripOverlayInteractionFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/filmstripoverlay/fingerprints/FilmStripOverlayInteractionFingerprint; +} + +public final class app/revanced/patches/youtube/player/filmstripoverlay/fingerprints/FilmStripOverlayParentFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/filmstripoverlay/fingerprints/FilmStripOverlayParentFingerprint; +} + +public final class app/revanced/patches/youtube/player/filmstripoverlay/fingerprints/FilmStripOverlayPreviewFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/filmstripoverlay/fingerprints/FilmStripOverlayPreviewFingerprint; +} + +public final class app/revanced/patches/youtube/player/filmstripoverlay/fingerprints/FineScrubbingOverlayFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/filmstripoverlay/fingerprints/FineScrubbingOverlayFingerprint; +} + +public final class app/revanced/patches/youtube/player/fullscreenbutton/HideFullscreenButtonPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/fullscreenbutton/HideFullscreenButtonPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/player/hapticfeedback/HapticFeedBackPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/hapticfeedback/HapticFeedBackPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/player/hapticfeedback/fingerprints/MarkerHapticsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/hapticfeedback/fingerprints/MarkerHapticsFingerprint; +} + +public final class app/revanced/patches/youtube/player/hapticfeedback/fingerprints/ScrubbingHapticsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/hapticfeedback/fingerprints/ScrubbingHapticsFingerprint; +} + +public final class app/revanced/patches/youtube/player/hapticfeedback/fingerprints/SeekHapticsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/hapticfeedback/fingerprints/SeekHapticsFingerprint; +} + +public final class app/revanced/patches/youtube/player/hapticfeedback/fingerprints/SeekUndoHapticsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/hapticfeedback/fingerprints/SeekUndoHapticsFingerprint; +} + +public final class app/revanced/patches/youtube/player/hapticfeedback/fingerprints/ZoomHapticsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/hapticfeedback/fingerprints/ZoomHapticsFingerprint; +} + +public final class app/revanced/patches/youtube/player/infocards/HideInfoCardsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/infocards/HideInfoCardsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/player/infocards/fingerprints/InfoCardsIncognitoFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/infocards/fingerprints/InfoCardsIncognitoFingerprint; +} + +public final class app/revanced/patches/youtube/player/musicbutton/HideMusicButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/musicbutton/HideMusicButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/player/musicbutton/fingerprints/MusicAppDeeplinkButtonAlternativeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/musicbutton/fingerprints/MusicAppDeeplinkButtonAlternativeFingerprint; +} + +public final class app/revanced/patches/youtube/player/musicbutton/fingerprints/MusicAppDeeplinkButtonFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/musicbutton/fingerprints/MusicAppDeeplinkButtonFingerprint; +} + +public final class app/revanced/patches/youtube/player/playerbuttonbg/HidePlayerButtonBackgroundPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/playerbuttonbg/HidePlayerButtonBackgroundPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/player/playeroverlay/CustomPlayerOverlayOpacityPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/playeroverlay/CustomPlayerOverlayOpacityPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/player/previousnextbutton/HidePreviousNextButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/previousnextbutton/HidePreviousNextButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/player/seekmessage/SeekMessagePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/seekmessage/SeekMessagePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/player/seekmessage/fingerprints/SeekEduContainerFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/seekmessage/fingerprints/SeekEduContainerFingerprint; +} + +public final class app/revanced/patches/youtube/player/seekmessage/fingerprints/SeekEduUndoOverlayFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/seekmessage/fingerprints/SeekEduUndoOverlayFingerprint; +} + +public final class app/revanced/patches/youtube/player/speedoverlay/SpeedOverlayPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/speedoverlay/SpeedOverlayPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/player/speedoverlay/fingerprints/RestoreSlideToSeekBehaviorFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/speedoverlay/fingerprints/RestoreSlideToSeekBehaviorFingerprint; +} + +public final class app/revanced/patches/youtube/player/speedoverlay/fingerprints/SpeedOverlayFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/speedoverlay/fingerprints/SpeedOverlayFingerprint; +} + +public final class app/revanced/patches/youtube/player/suggestactions/SuggestedActionsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/suggestactions/SuggestedActionsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/player/suggestactions/fingerprints/SuggestedActionsFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/suggestactions/fingerprints/SuggestedActionsFingerprint; +} + +public final class app/revanced/patches/youtube/player/suggestedvideooverlay/SuggestedVideoOverlayPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/suggestedvideooverlay/SuggestedVideoOverlayPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/player/watermark/HideChannelWatermarkBytecodePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/watermark/HideChannelWatermarkBytecodePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/player/watermark/fingerprints/HideWatermarkFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/watermark/fingerprints/HideWatermarkFingerprint; +} + +public final class app/revanced/patches/youtube/player/watermark/fingerprints/HideWatermarkParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/player/watermark/fingerprints/HideWatermarkParentFingerprint; +} + +public final class app/revanced/patches/youtube/seekbar/append/AppendTimeStampInformationPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/seekbar/append/AppendTimeStampInformationPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/seekbar/color/SeekbarColorPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/seekbar/color/SeekbarColorPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/seekbar/color/fingerprints/ControlsOverlayStyleFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/seekbar/color/fingerprints/ControlsOverlayStyleFingerprint; +} + +public final class app/revanced/patches/youtube/seekbar/color/fingerprints/ShortsSeekbarColorFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/seekbar/color/fingerprints/ShortsSeekbarColorFingerprint; +} + +public final class app/revanced/patches/youtube/seekbar/hide/HideSeekbarPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/seekbar/hide/HideSeekbarPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/seekbar/tapping/SeekbarTappingPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/seekbar/tapping/SeekbarTappingPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/seekbar/tapping/fingerprints/SeekbarTappingFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/seekbar/tapping/fingerprints/SeekbarTappingFingerprint; +} + +public final class app/revanced/patches/youtube/seekbar/thumbnailpreview/NewThumbnailPreviewPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/seekbar/thumbnailpreview/NewThumbnailPreviewPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/seekbar/timestamps/HideTimeStampPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/seekbar/timestamps/HideTimeStampPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/seekbar/timestamps/fingerprints/TimeCounterFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/seekbar/timestamps/fingerprints/TimeCounterFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/ShortsComponentPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/ShortsComponentPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/ShortsNavigationBarPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/ShortsNavigationBarPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/ShortsSubscriptionsButtonPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/ShortsSubscriptionsButtonPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/ShortsToolBarPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/ShortsToolBarPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/BottomNavigationBarAlternativeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/BottomNavigationBarAlternativeFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/BottomNavigationBarFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/BottomNavigationBarFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/RenderBottomNavigationBarFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/RenderBottomNavigationBarFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/SetPivotBarFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/SetPivotBarFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsCommentFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsCommentFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsDislikeFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsDislikeFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsInfoPanelFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsInfoPanelFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsLikeFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsLikeFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsPaidPromotionFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsPaidPromotionFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsPivotFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsPivotFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsPivotLegacyFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsPivotLegacyFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsRemixFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsRemixFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsShareFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsShareFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsSubscriptionsFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsSubscriptionsFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsSubscriptionsTabletFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsSubscriptionsTabletFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsSubscriptionsTabletParentFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ShortsSubscriptionsTabletParentFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ToolBarBannerFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortscomponent/fingerprints/ToolBarBannerFingerprint; +} + +public final class app/revanced/patches/youtube/shorts/shortsoverlay/ShortsOverlayButtonsPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/shortsoverlay/ShortsOverlayButtonsPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/shorts/startupshortsreset/DisableShortsOnStartupPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/startupshortsreset/DisableShortsOnStartupPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/shorts/startupshortsreset/fingerprints/UserWasInShortsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/shorts/startupshortsreset/fingerprints/UserWasInShortsFingerprint; +} + +public final class app/revanced/patches/youtube/swipe/controls/SwipeControlsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/swipe/controls/SwipeControlsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/swipe/controls/fingerprints/FullScreenEngagementOverlayFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/swipe/controls/fingerprints/FullScreenEngagementOverlayFingerprint; +} + +public final class app/revanced/patches/youtube/swipe/controls/fingerprints/HDRBrightnessFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/swipe/controls/fingerprints/HDRBrightnessFingerprint; +} + +public final class app/revanced/patches/youtube/swipe/controls/fingerprints/SwipeControlsHostActivityFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/swipe/controls/fingerprints/SwipeControlsHostActivityFingerprint; +} + +public final class app/revanced/patches/youtube/utils/browseid/BrowseIdHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/browseid/BrowseIdHookPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/browseid/fingerprints/BrowseIdClassFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/browseid/fingerprints/BrowseIdClassFingerprint; +} + +public final class app/revanced/patches/youtube/utils/controlsoverlay/DisableControlsOverlayConfigPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/controlsoverlay/DisableControlsOverlayConfigPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/controlsoverlay/fingerprints/ControlsOverlayConfigFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/controlsoverlay/fingerprints/ControlsOverlayConfigFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/LayoutConstructorFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/LayoutConstructorFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/LayoutSwitchFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/LayoutSwitchFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/NewVideoQualityChangedFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/NewVideoQualityChangedFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/OrganicPlaybackContextModelFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/OrganicPlaybackContextModelFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/PivotBarCreateButtonViewFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/PivotBarCreateButtonViewFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/PlayerControlsVisibilityModelFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/PlayerControlsVisibilityModelFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/PlayerParameterBuilderFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/PlayerParameterBuilderFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/PlayerSeekbarColorFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/PlayerSeekbarColorFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/QualityMenuViewInflateFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/QualityMenuViewInflateFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/RecyclerViewTreeObserverFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/RecyclerViewTreeObserverFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/RollingNumberTextViewAnimationUpdateFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/RollingNumberTextViewAnimationUpdateFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/SeekbarFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/SeekbarFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/SeekbarOnDrawFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/SeekbarOnDrawFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/ThumbnailPreviewConfigFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/ThumbnailPreviewConfigFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/TotalTimeFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/TotalTimeFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/VideoEndFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/VideoEndFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fingerprints/YouTubeControlsOverlayFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fingerprints/YouTubeControlsOverlayFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fix/clientspoof/ClientSpoofPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fix/clientspoof/ClientSpoofPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/fix/clientspoof/fingerprints/UserAgentHeaderBuilderFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fix/clientspoof/fingerprints/UserAgentHeaderBuilderFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fix/doublebacktoclose/DoubleBackToClosePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fix/doublebacktoclose/DoubleBackToClosePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/fix/doublebacktoclose/fingerprint/ScrollPositionFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fix/doublebacktoclose/fingerprint/ScrollPositionFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fix/doublebacktoclose/fingerprint/ScrollTopFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fix/doublebacktoclose/fingerprint/ScrollTopFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fix/doublebacktoclose/fingerprint/ScrollTopParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fix/doublebacktoclose/fingerprint/ScrollTopParentFingerprint; +} + +public final class app/revanced/patches/youtube/utils/fix/parameter/SpoofPlayerParameterPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fix/parameter/SpoofPlayerParameterPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/fix/swiperefresh/SwipeRefreshPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fix/swiperefresh/SwipeRefreshPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/fix/swiperefresh/fingerprint/SwipeRefreshLayoutFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/fix/swiperefresh/fingerprint/SwipeRefreshLayoutFingerprint; +} + +public final class app/revanced/patches/youtube/utils/integrations/Constants { + public static final field ADS_PATH Ljava/lang/String; + public static final field ALTERNATIVE_THUMBNAILS Ljava/lang/String; + public static final field ALTERNATIVE_THUMBNAILS_PATH Ljava/lang/String; + public static final field BOTTOM_PLAYER Ljava/lang/String; + public static final field BOTTOM_PLAYER_PATH Ljava/lang/String; + public static final field COMPONENTS_PATH Ljava/lang/String; + public static final field FLYOUT_PANEL Ljava/lang/String; + public static final field FLYOUT_PANEL_PATH Ljava/lang/String; + public static final field FULLSCREEN Ljava/lang/String; + public static final field FULLSCREEN_PATH Ljava/lang/String; + public static final field GENERAL Ljava/lang/String; + public static final field GENERAL_PATH Ljava/lang/String; + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/integrations/Constants; + public static final field INTEGRATIONS_PATH Ljava/lang/String; + public static final field MISC_PATH Ljava/lang/String; + public static final field NAVIGATION Ljava/lang/String; + public static final field NAVIGATION_PATH Ljava/lang/String; + public static final field OVERLAY_BUTTONS_PATH Ljava/lang/String; + public static final field PATCHES_PATH Ljava/lang/String; + public static final field PLAYER Ljava/lang/String; + public static final field PLAYER_PATH Ljava/lang/String; + public static final field SEEKBAR Ljava/lang/String; + public static final field SEEKBAR_PATH Ljava/lang/String; + public static final field SHORTS Ljava/lang/String; + public static final field SHORTS_PATH Ljava/lang/String; + public static final field SWIPE_PATH Ljava/lang/String; + public static final field UTILS_PATH Ljava/lang/String; + public static final field VIDEO_PATH Ljava/lang/String; + public final fun getLANGUAGE_LIST ()[Ljava/lang/String; +} + +public final class app/revanced/patches/youtube/utils/integrations/IntegrationsPatch : app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/integrations/IntegrationsPatch; +} + +public final class app/revanced/patches/youtube/utils/integrations/fingerprints/APIPlayerServiceFingerprint : app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/integrations/fingerprints/APIPlayerServiceFingerprint; +} + +public final class app/revanced/patches/youtube/utils/integrations/fingerprints/ApplicationInitFingerprint : app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/integrations/fingerprints/ApplicationInitFingerprint; +} + +public final class app/revanced/patches/youtube/utils/integrations/fingerprints/EmbeddedPlayerControlsOverlayFingerprint : app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/integrations/fingerprints/EmbeddedPlayerControlsOverlayFingerprint; +} + +public final class app/revanced/patches/youtube/utils/integrations/fingerprints/EmbeddedPlayerFingerprint : app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/integrations/fingerprints/EmbeddedPlayerFingerprint; +} + +public final class app/revanced/patches/youtube/utils/integrations/fingerprints/RemoteEmbedFragmentFingerprint : app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/integrations/fingerprints/RemoteEmbedFragmentFingerprint; +} + +public final class app/revanced/patches/youtube/utils/integrations/fingerprints/RemoteEmbeddedPlayerFingerprint : app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/integrations/fingerprints/RemoteEmbeddedPlayerFingerprint; +} + +public final class app/revanced/patches/youtube/utils/integrations/fingerprints/StandalonePlayerActivityFingerprint : app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/integrations/fingerprints/StandalonePlayerActivityFingerprint; +} + +public final class app/revanced/patches/youtube/utils/litho/LithoFilterPatch : app/revanced/patcher/patch/BytecodePatch, java/io/Closeable { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/litho/LithoFilterPatch; + public fun close ()V + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/litho/fingerprints/GeneralByteBufferFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/litho/fingerprints/GeneralByteBufferFingerprint; +} + +public final class app/revanced/patches/youtube/utils/litho/fingerprints/LithoFilterFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/litho/fingerprints/LithoFilterFingerprint; +} + +public final class app/revanced/patches/youtube/utils/lockmodestate/LockModeStateHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/lockmodestate/LockModeStateHookPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/lockmodestate/fingerprint/LockModeStateFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/lockmodestate/fingerprint/LockModeStateFingerprint; +} + +public final class app/revanced/patches/youtube/utils/mainactivity/MainActivityResolvePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/mainactivity/MainActivityResolvePatch; + public static field initMethod Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod; + public static field mainActivityClassDef Lcom/android/tools/smali/dexlib2/iface/ClassDef; + public static field mainActivityMutableClass Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass; + public static field onBackPressedMethod Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public final fun getInitMethod ()Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod; + public final fun getMainActivityClassDef ()Lcom/android/tools/smali/dexlib2/iface/ClassDef; + public final fun getMainActivityMutableClass ()Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass; + public final fun getOnBackPressedMethod ()Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod; + public final fun injectInit (Ljava/lang/String;Ljava/lang/String;)V + public final fun setInitMethod (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;)V + public final fun setMainActivityClassDef (Lcom/android/tools/smali/dexlib2/iface/ClassDef;)V + public final fun setMainActivityMutableClass (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;)V + public final fun setOnBackPressedMethod (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;)V +} + +public final class app/revanced/patches/youtube/utils/mainactivity/fingerprints/MainActivityFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/mainactivity/fingerprints/MainActivityFingerprint; +} + +public final class app/revanced/patches/youtube/utils/microg/Constants { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/microg/Constants; +} + +public final class app/revanced/patches/youtube/utils/microg/MicroGBytecodePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/microg/MicroGBytecodePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/microg/MicroGPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/microg/MicroGPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/utils/microg/fingerprints/CastContextFetchFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/microg/fingerprints/CastContextFetchFingerprint; +} + +public final class app/revanced/patches/youtube/utils/microg/fingerprints/CastDynamiteModuleFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/microg/fingerprints/CastDynamiteModuleFingerprint; +} + +public final class app/revanced/patches/youtube/utils/microg/fingerprints/CastDynamiteModuleV2Fingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/microg/fingerprints/CastDynamiteModuleV2Fingerprint; +} + +public final class app/revanced/patches/youtube/utils/microg/fingerprints/GooglePlayUtilityFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/microg/fingerprints/GooglePlayUtilityFingerprint; +} + +public final class app/revanced/patches/youtube/utils/microg/fingerprints/PrimeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/microg/fingerprints/PrimeFingerprint; +} + +public final class app/revanced/patches/youtube/utils/microg/fingerprints/ServiceCheckFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/microg/fingerprints/ServiceCheckFingerprint; +} + +public final class app/revanced/patches/youtube/utils/navbarindex/NavBarIndexHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/navbarindex/NavBarIndexHookPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/navbarindex/fingerprints/MobileTopBarButtonOnClickFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/navbarindex/fingerprints/MobileTopBarButtonOnClickFingerprint; +} + +public final class app/revanced/patches/youtube/utils/navbarindex/fingerprints/PivotBarIndexFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/navbarindex/fingerprints/PivotBarIndexFingerprint; +} + +public final class app/revanced/patches/youtube/utils/navbarindex/fingerprints/SettingsActivityOnBackPressedFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/navbarindex/fingerprints/SettingsActivityOnBackPressedFingerprint; +} + +public final class app/revanced/patches/youtube/utils/overridequality/OverrideQualityHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/overridequality/OverrideQualityHookPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/overridequality/fingerprints/VideoQualityListFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/overridequality/fingerprints/VideoQualityListFingerprint; +} + +public final class app/revanced/patches/youtube/utils/overridequality/fingerprints/VideoQualityPatchFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/overridequality/fingerprints/VideoQualityPatchFingerprint; +} + +public final class app/revanced/patches/youtube/utils/overridequality/fingerprints/VideoQualityTextFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/overridequality/fingerprints/VideoQualityTextFingerprint; +} + +public final class app/revanced/patches/youtube/utils/overridespeed/OverrideSpeedHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/overridespeed/OverrideSpeedHookPatch; + public static field playbackSpeedChangedResult Lapp/revanced/patcher/fingerprint/MethodFingerprintResult; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public final fun getPlaybackSpeedChangedResult ()Lapp/revanced/patcher/fingerprint/MethodFingerprintResult; + public final fun setPlaybackSpeedChangedResult (Lapp/revanced/patcher/fingerprint/MethodFingerprintResult;)V +} + +public final class app/revanced/patches/youtube/utils/overridespeed/fingerprints/PlaybackSpeedChangedFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/overridespeed/fingerprints/PlaybackSpeedChangedFingerprint; +} + +public final class app/revanced/patches/youtube/utils/overridespeed/fingerprints/PlaybackSpeedParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/overridespeed/fingerprints/PlaybackSpeedParentFingerprint; +} + +public final class app/revanced/patches/youtube/utils/overridespeed/fingerprints/PlaybackSpeedPatchFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/overridespeed/fingerprints/PlaybackSpeedPatchFingerprint; +} + +public final class app/revanced/patches/youtube/utils/overridespeed/fingerprints/SpeedClassFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/overridespeed/fingerprints/SpeedClassFingerprint; +} + +public final class app/revanced/patches/youtube/utils/playerbutton/PlayerButtonHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playerbutton/PlayerButtonHookPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/playerbutton/fingerprints/LiveChatFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playerbutton/fingerprints/LiveChatFingerprint; +} + +public final class app/revanced/patches/youtube/utils/playercontrols/PlayerControlsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playercontrols/PlayerControlsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/playercontrols/fingerprints/BottomControlsInflateFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playercontrols/fingerprints/BottomControlsInflateFingerprint; +} + +public final class app/revanced/patches/youtube/utils/playercontrols/fingerprints/ControlsLayoutInflateFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playercontrols/fingerprints/ControlsLayoutInflateFingerprint; +} + +public final class app/revanced/patches/youtube/utils/playercontrols/fingerprints/FullscreenEngagementSpeedEduVisibleFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playercontrols/fingerprints/FullscreenEngagementSpeedEduVisibleFingerprint; +} + +public final class app/revanced/patches/youtube/utils/playercontrols/fingerprints/FullscreenEngagementSpeedEduVisibleParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playercontrols/fingerprints/FullscreenEngagementSpeedEduVisibleParentFingerprint; +} + +public final class app/revanced/patches/youtube/utils/playercontrols/fingerprints/PlayerControlsVisibilityFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playercontrols/fingerprints/PlayerControlsVisibilityFingerprint; +} + +public final class app/revanced/patches/youtube/utils/playercontrols/fingerprints/QuickSeekVisibleFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playercontrols/fingerprints/QuickSeekVisibleFingerprint; +} + +public final class app/revanced/patches/youtube/utils/playercontrols/fingerprints/SeekEDUVisibleFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playercontrols/fingerprints/SeekEDUVisibleFingerprint; +} + +public final class app/revanced/patches/youtube/utils/playercontrols/fingerprints/UserScrubbingFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playercontrols/fingerprints/UserScrubbingFingerprint; +} + +public final class app/revanced/patches/youtube/utils/playerresponse/PlayerResponsePatch : app/revanced/patcher/patch/BytecodePatch, java/io/Closeable, java/util/Set, kotlin/jvm/internal/markers/KMutableSet { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playerresponse/PlayerResponsePatch; + public fun add (Lapp/revanced/patches/youtube/utils/playerresponse/PlayerResponsePatch$Hook;)Z + public synthetic fun add (Ljava/lang/Object;)Z + public fun addAll (Ljava/util/Collection;)Z + public fun clear ()V + public fun close ()V + public fun contains (Lapp/revanced/patches/youtube/utils/playerresponse/PlayerResponsePatch$Hook;)Z + public final fun contains (Ljava/lang/Object;)Z + public fun containsAll (Ljava/util/Collection;)Z + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun getSize ()I + public fun isEmpty ()Z + public fun iterator ()Ljava/util/Iterator; + public fun remove (Lapp/revanced/patches/youtube/utils/playerresponse/PlayerResponsePatch$Hook;)Z + public final fun remove (Ljava/lang/Object;)Z + public fun removeAll (Ljava/util/Collection;)Z + public fun retainAll (Ljava/util/Collection;)Z + public final fun size ()I + public fun toArray ()[Ljava/lang/Object; + public fun toArray ([Ljava/lang/Object;)[Ljava/lang/Object; +} + +public final class app/revanced/patches/youtube/utils/playertype/PlayerTypeHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playertype/PlayerTypeHookPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/playertype/fingerprint/PlayerTypeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playertype/fingerprint/PlayerTypeFingerprint; +} + +public final class app/revanced/patches/youtube/utils/playertype/fingerprint/VideoStateFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/playertype/fingerprint/VideoStateFingerprint; +} + +public final class app/revanced/patches/youtube/utils/quickactions/QuickActionsHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/quickactions/QuickActionsHookPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/quickactions/fingerprints/QuickActionsElementFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/quickactions/fingerprints/QuickActionsElementFingerprint; +} + +public final class app/revanced/patches/youtube/utils/resourceid/SharedResourceIdPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/resourceid/SharedResourceIdPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V + public final fun getAccountSwitcherAccessibility ()J + public final fun getActionBarRingo ()J + public final fun getAdAttribution ()J + public final fun getAppRelatedEndScreenResults ()J + public final fun getAppearance ()J + public final fun getAutoNavPreviewStub ()J + public final fun getAutoNavToggle ()J + public final fun getBackgroundCategory ()J + public final fun getBar ()J + public final fun getBarContainerHeight ()J + public final fun getBottomSheetFooterText ()J + public final fun getBottomUiContainerStub ()J + public final fun getChannelListSubMenu ()J + public final fun getCompactLink ()J + public final fun getCompactListItem ()J + public final fun getControlsLayoutStub ()J + public final fun getDarkSplashAnimation ()J + public final fun getDislikeButton ()J + public final fun getDonationCompanion ()J + public final fun getEasySeekEduContainer ()J + public final fun getEditSettingsAction ()J + public final fun getEmojiPickerIcon ()J + public final fun getEndScreenElementLayoutCircle ()J + public final fun getEndScreenElementLayoutIcon ()J + public final fun getEndScreenElementLayoutVideo ()J + public final fun getExpandButtonDown ()J + public final fun getFab ()J + public final fun getFilterBarHeight ()J + public final fun getFloatyBarTopMargin ()J + public final fun getFullScreenEngagementOverlay ()J + public final fun getFullScreenEngagementPanel ()J + public final fun getHorizontalCardList ()J + public final fun getImageOnlyTab ()J + public final fun getInlineTimeBarColorizedBarPlayedColorDark ()J + public final fun getInlineTimeBarPlayedNotHighlightedColor ()J + public final fun getInsetOverlayViewLayout ()J + public final fun getLiveChatButton ()J + public final fun getMenuItemView ()J + public final fun getMusicAppDeeplinkButtonView ()J + public final fun getPosterArtWidthDefault ()J + public final fun getQualityAuto ()J + public final fun getQuickActionsElementContainer ()J + public final fun getReelDynRemix ()J + public final fun getReelDynShare ()J + public final fun getReelForcedMuteButton ()J + public final fun getReelPivotButton ()J + public final fun getReelPlayerBadge ()J + public final fun getReelPlayerBadge2 ()J + public final fun getReelPlayerFooter ()J + public final fun getReelPlayerInfoPanel ()J + public final fun getReelPlayerPausedStateButton ()J + public final fun getReelRightDislikeIcon ()J + public final fun getReelRightLikeIcon ()J + public final fun getReelTimeBarPlayedColor ()J + public final fun getRelatedChipCloudMargin ()J + public final fun getRightComment ()J + public final fun getScrimOverlay ()J + public final fun getScrubbing ()J + public final fun getSeekUndoEduOverlayStub ()J + public final fun getSettingsBooleanTimeRangeDialog ()J + public final fun getSizeAdjustableLiteAutoNavOverlay ()J + public final fun getSubtitleMenuSettingsFooterInfo ()J + public final fun getSuggestedAction ()J + public final fun getTabsBarTextTabView ()J + public final fun getToolTipContentView ()J + public final fun getTotalTime ()J + public final fun getTouchArea ()J + public final fun getVideoQualityBottomSheet ()J + public final fun getVideoZoomIndicatorLayout ()J + public final fun getWordMarkHeader ()J + public final fun getYoutubeControlsOverlay ()J + public final fun getYoutubeControlsOverlaySubtitleButton ()J + public final fun getYtOutlineArrowTimeBlack ()J + public final fun getYtOutlineFireBlack ()J + public final fun getYtOutlineSearchBlack ()J + public final fun setAccountSwitcherAccessibility (J)V + public final fun setActionBarRingo (J)V + public final fun setAdAttribution (J)V + public final fun setAppRelatedEndScreenResults (J)V + public final fun setAppearance (J)V + public final fun setAutoNavPreviewStub (J)V + public final fun setAutoNavToggle (J)V + public final fun setBackgroundCategory (J)V + public final fun setBar (J)V + public final fun setBarContainerHeight (J)V + public final fun setBottomSheetFooterText (J)V + public final fun setBottomUiContainerStub (J)V + public final fun setChannelListSubMenu (J)V + public final fun setCompactLink (J)V + public final fun setCompactListItem (J)V + public final fun setControlsLayoutStub (J)V + public final fun setDarkSplashAnimation (J)V + public final fun setDislikeButton (J)V + public final fun setDonationCompanion (J)V + public final fun setEasySeekEduContainer (J)V + public final fun setEditSettingsAction (J)V + public final fun setEmojiPickerIcon (J)V + public final fun setEndScreenElementLayoutCircle (J)V + public final fun setEndScreenElementLayoutIcon (J)V + public final fun setEndScreenElementLayoutVideo (J)V + public final fun setExpandButtonDown (J)V + public final fun setFab (J)V + public final fun setFilterBarHeight (J)V + public final fun setFloatyBarTopMargin (J)V + public final fun setFullScreenEngagementOverlay (J)V + public final fun setFullScreenEngagementPanel (J)V + public final fun setHorizontalCardList (J)V + public final fun setImageOnlyTab (J)V + public final fun setInlineTimeBarColorizedBarPlayedColorDark (J)V + public final fun setInlineTimeBarPlayedNotHighlightedColor (J)V + public final fun setInsetOverlayViewLayout (J)V + public final fun setLiveChatButton (J)V + public final fun setMenuItemView (J)V + public final fun setMusicAppDeeplinkButtonView (J)V + public final fun setPosterArtWidthDefault (J)V + public final fun setQualityAuto (J)V + public final fun setQuickActionsElementContainer (J)V + public final fun setReelDynRemix (J)V + public final fun setReelDynShare (J)V + public final fun setReelForcedMuteButton (J)V + public final fun setReelPivotButton (J)V + public final fun setReelPlayerBadge (J)V + public final fun setReelPlayerBadge2 (J)V + public final fun setReelPlayerFooter (J)V + public final fun setReelPlayerInfoPanel (J)V + public final fun setReelPlayerPausedStateButton (J)V + public final fun setReelRightDislikeIcon (J)V + public final fun setReelRightLikeIcon (J)V + public final fun setReelTimeBarPlayedColor (J)V + public final fun setRelatedChipCloudMargin (J)V + public final fun setRightComment (J)V + public final fun setScrimOverlay (J)V + public final fun setScrubbing (J)V + public final fun setSeekUndoEduOverlayStub (J)V + public final fun setSettingsBooleanTimeRangeDialog (J)V + public final fun setSizeAdjustableLiteAutoNavOverlay (J)V + public final fun setSubtitleMenuSettingsFooterInfo (J)V + public final fun setSuggestedAction (J)V + public final fun setTabsBarTextTabView (J)V + public final fun setToolTipContentView (J)V + public final fun setTotalTime (J)V + public final fun setTouchArea (J)V + public final fun setVideoQualityBottomSheet (J)V + public final fun setVideoZoomIndicatorLayout (J)V + public final fun setWordMarkHeader (J)V + public final fun setYoutubeControlsOverlay (J)V + public final fun setYoutubeControlsOverlaySubtitleButton (J)V + public final fun setYtOutlineArrowTimeBlack (J)V + public final fun setYtOutlineFireBlack (J)V + public final fun setYtOutlineSearchBlack (J)V +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/general/ReturnYouTubeDislikePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/general/ReturnYouTubeDislikePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/general/fingerprints/DislikeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/general/fingerprints/DislikeFingerprint; +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/general/fingerprints/LikeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/general/fingerprints/LikeFingerprint; +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/general/fingerprints/RemoveLikeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/general/fingerprints/RemoveLikeFingerprint; +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/general/fingerprints/TextComponentConstructorFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/general/fingerprints/TextComponentConstructorFingerprint; +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/general/fingerprints/TextComponentContextFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/general/fingerprints/TextComponentContextFingerprint; +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/oldlayout/ReturnYouTubeDislikeOldLayoutPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/oldlayout/ReturnYouTubeDislikeOldLayoutPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/oldlayout/fingerprints/ButtonTagFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/oldlayout/fingerprints/ButtonTagFingerprint; +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/rollingnumber/ReturnYouTubeDislikeRollingNumberPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/rollingnumber/ReturnYouTubeDislikeRollingNumberPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/rollingnumber/fingerprints/RollingNumberMeasureAnimatedTextFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/rollingnumber/fingerprints/RollingNumberMeasureAnimatedTextFingerprint; +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/rollingnumber/fingerprints/RollingNumberMeasureStaticLabelFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/rollingnumber/fingerprints/RollingNumberMeasureStaticLabelFingerprint; +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/rollingnumber/fingerprints/RollingNumberMeasureTextParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/rollingnumber/fingerprints/RollingNumberMeasureTextParentFingerprint; +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/rollingnumber/fingerprints/RollingNumberSetterFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/rollingnumber/fingerprints/RollingNumberSetterFingerprint; +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/rollingnumber/fingerprints/RollingNumberTextViewFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/rollingnumber/fingerprints/RollingNumberTextViewFingerprint; +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/shorts/ReturnYouTubeDislikeShortsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/shorts/ReturnYouTubeDislikeShortsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/shorts/fingerprints/IncognitoFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/shorts/fingerprints/IncognitoFingerprint; +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/shorts/fingerprints/ShortsTextViewFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/shorts/fingerprints/ShortsTextViewFingerprint; +} + +public final class app/revanced/patches/youtube/utils/returnyoutubedislike/shorts/fingerprints/TextComponentSpecFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/returnyoutubedislike/shorts/fingerprints/TextComponentSpecFingerprint; +} + +public final class app/revanced/patches/youtube/utils/settings/ResourceUtils { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/settings/ResourceUtils; + public static final field TARGET_PREFERENCE_PATH Ljava/lang/String; + public static final field YOUTUBE_SETTINGS_PATH Ljava/lang/String; + public final fun addEntryValues (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun addPreference (Lapp/revanced/patcher/data/ResourceContext;[Ljava/lang/String;)V + public final fun addReVancedPreference (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;)V + public final fun getTargetPackage ()Ljava/lang/String; + public final fun setMicroG (Ljava/lang/String;)V + public final fun setTargetPackage (Ljava/lang/String;)V + public final fun updatePatchStatus (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;)V + public final fun updatePatchStatusHeader (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;)V + public final fun updatePatchStatusIcon (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;)V + public final fun updatePatchStatusLabel (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;)V + public final fun updatePatchStatusSettings (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;Ljava/lang/String;)V + public final fun updatePatchStatusTheme (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;)V +} + +public final class app/revanced/patches/youtube/utils/settings/SettingsAddIconsPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/settings/SettingsAddIconsPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/utils/settings/SettingsBytecodePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/settings/SettingsBytecodePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/settings/SettingsPatch : app/revanced/patches/shared/patch/settings/AbstractSettingsResourcePatch, java/io/Closeable { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/settings/SettingsPatch; + public fun close ()V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/utils/settings/fingerprints/ThemeSetterSystemFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/settings/fingerprints/ThemeSetterSystemFingerprint; +} + +public final class app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockBytecodePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/sponsorblock/SponsorBlockBytecodePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch; + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V +} + +public final class app/revanced/patches/youtube/utils/sponsorblock/fingerprints/RectangleFieldInvalidatorFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/sponsorblock/fingerprints/RectangleFieldInvalidatorFingerprint; +} + +public final class app/revanced/patches/youtube/utils/sponsorblock/fingerprints/SegmentPlaybackControllerFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/sponsorblock/fingerprints/SegmentPlaybackControllerFingerprint; +} + +public final class app/revanced/patches/youtube/utils/toolbar/ToolBarHookPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/toolbar/ToolBarHookPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/toolbar/fingerprints/ToolBarButtonFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/toolbar/fingerprints/ToolBarButtonFingerprint; +} + +public final class app/revanced/patches/youtube/utils/toolbar/fingerprints/ToolBarPatchFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/toolbar/fingerprints/ToolBarPatchFingerprint; +} + +public final class app/revanced/patches/youtube/utils/videocpn/VideoCpnPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/videocpn/VideoCpnPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/videoid/general/VideoIdPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/videoid/general/VideoIdPatch; + public static final field INTEGRATIONS_CLASS_DESCRIPTOR Ljava/lang/String; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/videoid/general/fingerprint/PlayerControllerSetTimeReferenceFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/videoid/general/fingerprint/PlayerControllerSetTimeReferenceFingerprint; +} + +public final class app/revanced/patches/youtube/utils/videoid/general/fingerprint/VideoIdFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/videoid/general/fingerprint/VideoIdFingerprint; +} + +public final class app/revanced/patches/youtube/utils/videoid/general/fingerprint/VideoIdParentFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/videoid/general/fingerprint/VideoIdParentFingerprint; +} + +public final class app/revanced/patches/youtube/utils/videoid/general/fingerprint/VideoLengthFingerprint : app/revanced/util/fingerprint/LiteralValueFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/videoid/general/fingerprint/VideoLengthFingerprint; +} + +public final class app/revanced/patches/youtube/utils/videoid/withoutshorts/VideoIdWithoutShortsPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/videoid/withoutshorts/VideoIdWithoutShortsPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/utils/videoid/withoutshorts/fingerprint/VideoIdWithoutShortsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/utils/videoid/withoutshorts/fingerprint/VideoIdWithoutShortsFingerprint; +} + +public final class app/revanced/patches/youtube/video/customspeed/CustomPlaybackSpeedPatch : app/revanced/patches/shared/patch/customspeed/AbstractCustomPlaybackSpeedPatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/video/customspeed/CustomPlaybackSpeedPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/video/hdr/DisableHdrVideoPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/video/hdr/DisableHdrVideoPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/video/hdr/fingerprints/HdrCapabilitiesFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/video/hdr/fingerprints/HdrCapabilitiesFingerprint; +} + +public final class app/revanced/patches/youtube/video/quality/VideoQualityPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/video/quality/VideoQualityPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/video/quality/fingerprints/VideoQualitySetterFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/video/quality/fingerprints/VideoQualitySetterFingerprint; +} + +public final class app/revanced/patches/youtube/video/speed/PlaybackSpeedPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/youtube/video/speed/PlaybackSpeedPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + +public final class app/revanced/patches/youtube/video/speed/fingerprints/NewPlaybackSpeedChangedFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/video/speed/fingerprints/NewPlaybackSpeedChangedFingerprint; +} + +public final class app/revanced/patches/youtube/video/speed/fingerprints/PlaybackSpeedInitializeFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public static final field INSTANCE Lapp/revanced/patches/youtube/video/speed/fingerprints/PlaybackSpeedInitializeFingerprint; +} + +public final class app/revanced/util/BytecodeUtilsKt { + public static final fun containsWideLiteralInstructionIndex (Lcom/android/tools/smali/dexlib2/iface/Method;J)Z + public static final fun findMutableMethodOf (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;Lcom/android/tools/smali/dexlib2/iface/Method;)Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod; + public static final fun getEmptyStringInstructionIndex (Lcom/android/tools/smali/dexlib2/iface/Method;)I + public static final fun getException (Lapp/revanced/patcher/fingerprint/MethodFingerprint;)Lapp/revanced/patcher/patch/PatchException; + public static final fun getStringInstructionIndex (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/String;)I + public static final fun getTargetIndex (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;ILcom/android/tools/smali/dexlib2/Opcode;)I + public static final fun getTargetIndexReversed (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;ILcom/android/tools/smali/dexlib2/Opcode;)I + public static final fun getWideLiteralInstructionIndex (Lcom/android/tools/smali/dexlib2/iface/Method;J)I + public static final fun indexOfFirstInstruction (Lcom/android/tools/smali/dexlib2/iface/Method;Lkotlin/jvm/functions/Function1;)I + public static final fun injectHideViewCall (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;IILjava/lang/String;Ljava/lang/String;)V + public static final fun transformFields (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;Lkotlin/jvm/functions/Function1;)V + public static final fun transformMethods (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;Lkotlin/jvm/functions/Function1;)V + public static final fun traverseClassHierarchy (Lapp/revanced/patcher/data/BytecodeContext;Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;Lkotlin/jvm/functions/Function1;)V + public static final fun updatePatchStatus (Lapp/revanced/patcher/data/BytecodeContext;Ljava/lang/String;Ljava/lang/String;)V +} + +public final class app/revanced/util/ResourceGroup { + public fun (Ljava/lang/String;[Ljava/lang/String;)V + public final fun getResourceDirectoryName ()Ljava/lang/String; + public final fun getResources ()[Ljava/lang/String; +} + +public final class app/revanced/util/ResourceUtilsKt { + public static final fun adoptChild (Lorg/w3c/dom/Node;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V + public static final fun cloneNodes (Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)V + public static final fun copyResources (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;[Lapp/revanced/util/ResourceGroup;)V + public static final fun copyXmlNode (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public static final fun copyXmlNode (Ljava/lang/String;Lapp/revanced/patcher/util/DomFileEditor;Lapp/revanced/patcher/util/DomFileEditor;)Ljava/lang/AutoCloseable; + public static final fun doRecursively (Lorg/w3c/dom/Node;Lkotlin/jvm/functions/Function1;)V + public static final fun getClassLoader ()Ljava/lang/ClassLoader; + public static final fun insertNode (Lorg/w3c/dom/Node;Ljava/lang/String;Lorg/w3c/dom/Node;Lkotlin/jvm/functions/Function1;)V + public static final fun startsWithAny (Ljava/lang/String;[Ljava/lang/String;)Z +} + +public abstract class app/revanced/util/fingerprint/LiteralValueFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint { + public fun (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/lang/Iterable;Lkotlin/jvm/functions/Function0;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/lang/Iterable;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/internal/DefaultConstructorMarker;)V +} + diff --git a/build.gradle.kts b/build.gradle.kts index 81e0f8461..502e76bac 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,10 @@ import org.gradle.kotlin.dsl.support.listFilesOrdered plugins { - kotlin("jvm") version "1.9.20" + alias(libs.plugins.kotlin) + alias(libs.plugins.binary.compatibility.validator) + `maven-publish` + signing } group = "app.revanced" @@ -10,12 +13,21 @@ repositories { mavenCentral() mavenLocal() google() - maven { url = uri("https://jitpack.io") } + maven { + // A repository must be speficied for some reason. "registry" is a dummy. + url = uri("https://maven.pkg.github.com/revanced/registry") + credentials { + username = project.findProperty("gpr.user") as String? ?: System.getenv("GITHUB_ACTOR") + password = project.findProperty("gpr.key") as String? ?: System.getenv("GITHUB_TOKEN") + } + } } dependencies { implementation(libs.revanced.patcher) implementation(libs.smali) + // TODO: Required because build fails without it. Find a way to remove this dependency. + implementation(libs.guava) // Used in JsonGenerator. implementation(libs.gson) } @@ -25,41 +37,126 @@ kotlin { } tasks { - register("generateBundle") { - description = "Generate dex files from build and bundle them in the jar file" + withType(Jar::class) { + exclude("app/revanced/meta") + + manifest { + attributes["Name"] = "ReVanced Patches" + attributes["Description"] = "Patches for ReVanced." + attributes["Version"] = version + attributes["Timestamp"] = System.currentTimeMillis().toString() + attributes["Source"] = "git@github.com:revanced/revanced-patches.git" + attributes["Author"] = "ReVanced" + attributes["Contact"] = "contact@revanced.app" + attributes["Origin"] = "https://revanced.app" + attributes["License"] = "GNU General Public License v3.0" + } + } + + register("updatePrefsXml") { + description = "Update revanced_prefs.xml with the new version" + + doLast { + val prefsFile = file("src/main/resources/youtube/settings/xml/revanced_prefs.xml") + val old = Regex("""Patches" (.*)summary="[^"]*"""") + val new = """Patches" $1summary="$version"""" + + prefsFile.writeText(prefsFile.readText().replace(old, new)) + } + } + + register("buildDexJar") { + description = "Build and add a DEX to the JAR file" + group = "build" + dependsOn(build) doLast { val d8 = File(System.getenv("ANDROID_HOME")).resolve("build-tools") .listFilesOrdered().last().resolve("d8").absolutePath - val artifacts = configurations.archives.get().allArtifacts.files.files.first().absolutePath + val patchesJar = configurations.archives.get().allArtifacts.files.files.first().absolutePath val workingDirectory = layout.buildDirectory.dir("libs").get().asFile exec { workingDir = workingDirectory - commandLine = listOf(d8, artifacts) + commandLine = listOf(d8, "--release", patchesJar) } exec { workingDir = workingDirectory - commandLine = listOf("zip", "-u", artifacts, "classes.dex") + commandLine = listOf("zip", "-u", patchesJar, "classes.dex") } } } - register("generateMeta") { - description = "Generate metadata for this bundle" + register("generatePatchesFiles") { + description = "Generate patches files" + dependsOn(build) classpath = sourceSets["main"].runtimeClasspath mainClass.set("app.revanced.meta.PatchesFileGenerator") } - // Required to run tasks because Gradle semantic-release plugin runs the publish task. + // Needed by gradle-semantic-release-plugin. // Tracking: https://github.com/KengoTODA/gradle-semantic-release-plugin/issues/435 - register("publish") { - dependsOn("generateBundle") - dependsOn("generateMeta") + publish { + dependsOn("buildDexJar") + dependsOn("generatePatchesFiles") + } +} + +publishing { + repositories { + maven { + name = "GitHubPackages" + url = uri("https://maven.pkg.github.com/anddea/revanced-patches") + credentials { + username = System.getenv("GITHUB_ACTOR") + password = System.getenv("GITHUB_TOKEN") + } + } } + + publications { + create("revanced-patches-publication") { + from(components["java"]) + + pom { + name = "ReVanced Patches" + description = "Patches for ReVanced." + url = "https://revanced.app" + + licenses { + license { + name = "GNU General Public License v3.0" + url = "https://www.gnu.org/licenses/gpl-3.0.en.html" + } + } + developers { + developer { + id = "ReVanced" + name = "ReVanced" + email = "contact@revanced.app" + } + } + scm { + connection = "scm:git:git://github.com/revanced/revanced-patches.git" + developerConnection = "scm:git:git@github.com:revanced/revanced-patches.git" + url = "https://github.com/revanced/revanced-patches" + } + } + } + } +} + +signing { + useGpgCmd() + + sign(publishing.publications["revanced-patches-publication"]) +} + +tasks.named("processResources") { + dependsOn("updatePrefsXml") } diff --git a/gradle.properties b/gradle.properties index 021b1e4b2..7720e0159 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 2.221.1 +version = 2.222.0-dev.10 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f112b6ce0..a4c08e898 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,9 +1,17 @@ [versions] -revanced-patcher = "19.1.0" -smali = "3.0.3" +revanced-patcher = "19.3.1" +smali = "3.0.5" +guava = "33.0.0-jre" gson = "2.10.1" +binary-compatibility-validator = "0.14.0" +kotlin = "1.9.22" [libraries] revanced-patcher = { module = "app.revanced:revanced-patcher", version.ref = "revanced-patcher" } smali = { module = "com.android.tools.smali:smali", version.ref = "smali" } +guava = { module = "com.google.guava:guava", version.ref = "guava" } gson = { module = "com.google.code.gson:gson", version.ref = "gson" } + +[plugins] +binary-compatibility-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binary-compatibility-validator" } +kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } diff --git a/package-lock.json b/package-lock.json index 3236ffce1..415c2d42a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,17 +5,17 @@ "packages": { "": { "devDependencies": { - "@saithodev/semantic-release-backmerge": "^3.2.1", + "@saithodev/semantic-release-backmerge": "^4.0.1", "@semantic-release/changelog": "^6.0.3", "@semantic-release/git": "^10.0.1", - "gradle-semantic-release-plugin": "^1.8.0", - "semantic-release": "^22.0.8" + "gradle-semantic-release-plugin": "^1.9.1", + "semantic-release": "^23.0.2" } }, "node_modules/@babel/code-frame": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", - "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "dependencies": { "@babel/highlight": "^7.23.4", @@ -66,15 +66,6 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/@babel/code-frame/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -160,15 +151,6 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -245,9 +227,9 @@ } }, "node_modules/@octokit/core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.1.tgz", - "integrity": "sha512-lyeeeZyESFo+ffI801SaBKmCfsvarO+dgV8/0gD8u1d87clbEdWsP5yC+dSj3zLhb2eIf5SJrn6vDz9AheETHw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.1.0.tgz", + "integrity": "sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==", "dev": true, "dependencies": { "@octokit/auth-token": "^4.0.0", @@ -263,13 +245,12 @@ } }, "node_modules/@octokit/endpoint": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.2.tgz", - "integrity": "sha512-qhKW8YLIi+Kmc92FQUFGr++DYtkx/1fBv+Thua6baqnjnOsgBYJDCvWZR1YcINuHGOEQt416WOfE+A/oG60NBQ==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.4.tgz", + "integrity": "sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==", "dev": true, "dependencies": { "@octokit/types": "^12.0.0", - "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" }, "engines": { @@ -291,18 +272,18 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.0.2.tgz", - "integrity": "sha512-8li32fUDUeml/ACRp/njCWTsk5t17cfTM1jp9n08pBrqs5cDFJubtjsSnuz56r5Tad6jdEPJld7LxNp9dNcyjQ==", + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.1.0.tgz", + "integrity": "sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==", "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.4.tgz", - "integrity": "sha512-MvZx4WvfhBnt7PtH5XE7HORsO7bBk4er1FgRIUr1qJ89NR2I6bWjGyKsxk8z42FPQ34hFQm0Baanh4gzdZR4gQ==", + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz", + "integrity": "sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==", "dev": true, "dependencies": { - "@octokit/types": "^12.3.0" + "@octokit/types": "^12.4.0" }, "engines": { "node": ">= 18" @@ -345,15 +326,14 @@ } }, "node_modules/@octokit/request": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.1.5.tgz", - "integrity": "sha512-zVKbNbX1xUluD9ZR4/tPs1yuYrK9xeh5fGZUXA6u04XGsTvomg0YO8/ZUC0FqAd49hAOEMFPAVUTh+2lBhOhLA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.2.0.tgz", + "integrity": "sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ==", "dev": true, "dependencies": { "@octokit/endpoint": "^9.0.0", "@octokit/request-error": "^5.0.0", "@octokit/types": "^12.0.0", - "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" }, "engines": { @@ -375,12 +355,12 @@ } }, "node_modules/@octokit/types": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.3.0.tgz", - "integrity": "sha512-nJ8X2HRr234q3w/FcovDlA+ttUU4m1eJAourvfUUtwAWeqL8AsyRqfnLvVnYn3NFbUnsmzQCzLNdFerPwdmcDQ==", + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.4.0.tgz", + "integrity": "sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^19.0.2" + "@octokit/openapi-types": "^19.1.0" } }, "node_modules/@pnpm/config.env-replace": { @@ -425,9 +405,9 @@ } }, "node_modules/@saithodev/semantic-release-backmerge": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@saithodev/semantic-release-backmerge/-/semantic-release-backmerge-3.2.1.tgz", - "integrity": "sha512-mC9cA6lhNzpy4rKOT5jjRLhlT3myubmVeo+BqWyR2WqF5PRJpG0jaU8pBC87S11GCUHKxqXf0QQDZNPbbNP1bA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@saithodev/semantic-release-backmerge/-/semantic-release-backmerge-4.0.1.tgz", + "integrity": "sha512-WDsU28YrXSLx0xny7FgFlEk8DCKGcj6OOhA+4Q9k3te1jJD1GZuqY8sbIkVQaw9cqJ7CT+fCZUN6QDad8JW4Dg==", "dev": true, "dependencies": { "@semantic-release/error": "^3.0.0", @@ -435,96 +415,64 @@ "debug": "^4.3.4", "execa": "^5.1.1", "lodash": "^4.17.21", - "semantic-release": ">=20.0.0 <22.0.0" + "semantic-release": "^22.0.7" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/commit-analyzer": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-10.0.4.tgz", - "integrity": "sha512-pFGn99fn8w4/MHE0otb2A/l5kxgOuxaaauIh4u30ncoTJuqWj4hXTgEJ03REqjS+w1R2vPftSsO26WC61yOcpw==", + "node_modules/@saithodev/semantic-release-backmerge/node_modules/clean-stack": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", + "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", "dev": true, "dependencies": { - "conventional-changelog-angular": "^6.0.0", - "conventional-commits-filter": "^3.0.0", - "conventional-commits-parser": "^5.0.0", - "debug": "^4.0.0", - "import-from": "^4.0.0", - "lodash-es": "^4.17.21", - "micromatch": "^4.0.2" + "escape-string-regexp": "5.0.0" }, "engines": { - "node": ">=18" + "node": ">=14.16" }, - "peerDependencies": { - "semantic-release": ">=20.1.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/commit-analyzer/node_modules/conventional-commits-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", - "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", + "node_modules/@saithodev/semantic-release-backmerge/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.1" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { "node": ">=14" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-10.0.6.tgz", - "integrity": "sha512-DyqHrGE8aUyapA277BB+4kV0C4iMHh3sHzUWdf0jTgp5NNJxVUz76W1f57FB64Ue03him3CBXxFqQD2xGabxow==", - "dev": true, - "dependencies": { - "@semantic-release/error": "^4.0.0", - "aggregate-error": "^5.0.0", - "execa": "^8.0.0", - "fs-extra": "^11.0.0", - "lodash-es": "^4.17.21", - "nerf-dart": "^1.0.0", - "normalize-url": "^8.0.0", - "npm": "^9.5.0", - "rc": "^1.2.8", - "read-pkg": "^8.0.0", - "registry-auth-token": "^5.0.0", - "semver": "^7.1.2", - "tempy": "^3.0.0" }, - "engines": { - "node": ">=18" + "funding": { + "url": "https://github.com/sponsors/d-fischer" }, "peerDependencies": { - "semantic-release": ">=20.1.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm/node_modules/@semantic-release/error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", - "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", - "dev": true, - "engines": { - "node": ">=18" + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm/node_modules/aggregate-error": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", - "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", + "node_modules/@saithodev/semantic-release-backmerge/node_modules/env-ci": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-10.0.0.tgz", + "integrity": "sha512-U4xcd/utDYFgMh0yWj07R1H6L5fwhVbmxBCpnL0DbVSDZVnsC82HONw0wxtxNkIAcua3KtbomQvIk5xFZGAQJw==", "dev": true, "dependencies": { - "clean-stack": "^5.2.0", - "indent-string": "^5.0.0" + "execa": "^8.0.0", + "java-properties": "^1.0.2" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.17 || >=20.6.1" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm/node_modules/execa": { + "node_modules/@saithodev/semantic-release-backmerge/node_modules/env-ci/node_modules/execa": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", @@ -547,7 +495,7 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm/node_modules/get-stream": { + "node_modules/@saithodev/semantic-release-backmerge/node_modules/env-ci/node_modules/get-stream": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", @@ -559,190 +507,118 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/@saithodev/semantic-release-backmerge/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, "engines": { - "node": ">=14" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/release-notes-generator": { - "version": "11.0.7", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-11.0.7.tgz", - "integrity": "sha512-T09QB9ImmNx7Q6hY6YnnEbw/rEJ6a+22LBxfZq+pSAXg/OL/k0siwEm5cK4k1f9dE2Z2mPIjJKKohzUm0jbxcQ==", + "node_modules/@saithodev/semantic-release-backmerge/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, - "dependencies": { - "conventional-changelog-angular": "^6.0.0", - "conventional-changelog-writer": "^6.0.0", - "conventional-commits-filter": "^4.0.0", - "conventional-commits-parser": "^5.0.0", - "debug": "^4.0.0", - "get-stream": "^7.0.0", - "import-from": "^4.0.0", - "into-stream": "^7.0.0", - "lodash-es": "^4.17.21", - "read-pkg-up": "^10.0.0" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" + "node": ">=16.17.0" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", - "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", + "node_modules/@saithodev/semantic-release-backmerge/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, "engines": { - "node": ">=16" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/clean-stack": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", - "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", + "node_modules/@saithodev/semantic-release-backmerge/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, - "dependencies": { - "escape-string-regexp": "5.0.0" - }, "engines": { - "node": ">=14.16" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/conventional-changelog-angular": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", - "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", - "dev": true, - "dependencies": { - "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/conventional-changelog-writer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz", - "integrity": "sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==", + "node_modules/@saithodev/semantic-release-backmerge/node_modules/marked": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.6.tgz", + "integrity": "sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==", "dev": true, - "dependencies": { - "conventional-commits-filter": "^3.0.0", - "dateformat": "^3.0.3", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "meow": "^8.1.2", - "semver": "^7.0.0", - "split": "^1.0.1" - }, "bin": { - "conventional-changelog-writer": "cli.js" + "marked": "bin/marked.js" }, "engines": { - "node": ">=14" + "node": ">= 16" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/conventional-changelog-writer/node_modules/conventional-commits-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", - "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", + "node_modules/@saithodev/semantic-release-backmerge/node_modules/marked-terminal": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-6.2.0.tgz", + "integrity": "sha512-ubWhwcBFHnXsjYNsu+Wndpg0zhY4CahSpPlA70PlO0rR9r2sZpkyU+rkCsOWH+KMEkx847UpALON+HWgxowFtw==", "dev": true, "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.1" + "ansi-escapes": "^6.2.0", + "cardinal": "^2.1.1", + "chalk": "^5.3.0", + "cli-table3": "^0.6.3", + "node-emoji": "^2.1.3", + "supports-hyperlinks": "^3.0.0" }, "engines": { - "node": ">=14" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/env-ci": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-9.1.1.tgz", - "integrity": "sha512-Im2yEWeF4b2RAMAaWvGioXk6m0UNaIjD8hj28j2ij5ldnIFrDQT0+pzDvpbRkcjurhXhf/AsBKv8P2rtmGi9Aw==", - "dev": true, - "dependencies": { - "execa": "^7.0.0", - "java-properties": "^1.0.2" + "node": ">=16.0.0" }, - "engines": { - "node": "^16.14 || >=18" + "peerDependencies": { + "marked": ">=1 <12" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/env-ci/node_modules/execa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "node_modules/@saithodev/semantic-release-backmerge/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + "node": ">=12" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/env-ci/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true, - "engines": { - "node": ">=14.18.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm-run-path": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", + "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", "dev": true, "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" + "path-key": "^4.0.0" }, "engines": { - "node": ">=14" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "node_modules/@saithodev/semantic-release-backmerge/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, "engines": { "node": ">=12" }, @@ -750,22 +626,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/is-stream": { + "node_modules/@saithodev/semantic-release-backmerge/node_modules/p-reduce": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", + "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", "dev": true, "engines": { "node": ">=12" @@ -774,3630 +638,48 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/lines-and-columns": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", - "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/marked": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-5.1.2.tgz", - "integrity": "sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 16" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/marked-terminal": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.2.0.tgz", - "integrity": "sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==", - "dev": true, - "dependencies": { - "ansi-escapes": "^6.2.0", - "cardinal": "^2.1.1", - "chalk": "^5.2.0", - "cli-table3": "^0.6.3", - "node-emoji": "^1.11.0", - "supports-hyperlinks": "^2.3.0" - }, - "engines": { - "node": ">=14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow/node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow/node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm": { - "version": "9.9.2", - "resolved": "https://registry.npmjs.org/npm/-/npm-9.9.2.tgz", - "integrity": "sha512-D3tV+W0PzJOlwo8YmO6fNzaB1CrMVYd1V+2TURF6lbCbmZKqMsYgeQfPVvqiM3zbNSJPhFEnmlEXIogH2Vq7PQ==", - "bundleDependencies": [ - "@isaacs/string-locale-compare", - "@npmcli/arborist", - "@npmcli/config", - "@npmcli/fs", - "@npmcli/map-workspaces", - "@npmcli/package-json", - "@npmcli/promise-spawn", - "@npmcli/run-script", - "abbrev", - "archy", - "cacache", - "chalk", - "ci-info", - "cli-columns", - "cli-table3", - "columnify", - "fastest-levenshtein", - "fs-minipass", - "glob", - "graceful-fs", - "hosted-git-info", - "ini", - "init-package-json", - "is-cidr", - "json-parse-even-better-errors", - "libnpmaccess", - "libnpmdiff", - "libnpmexec", - "libnpmfund", - "libnpmhook", - "libnpmorg", - "libnpmpack", - "libnpmpublish", - "libnpmsearch", - "libnpmteam", - "libnpmversion", - "make-fetch-happen", - "minimatch", - "minipass", - "minipass-pipeline", - "ms", - "node-gyp", - "nopt", - "normalize-package-data", - "npm-audit-report", - "npm-install-checks", - "npm-package-arg", - "npm-pick-manifest", - "npm-profile", - "npm-registry-fetch", - "npm-user-validate", - "npmlog", - "p-map", - "pacote", - "parse-conflict-json", - "proc-log", - "qrcode-terminal", - "read", - "semver", - "sigstore", - "spdx-expression-parse", - "ssri", - "supports-color", - "tar", - "text-table", - "tiny-relative-date", - "treeverse", - "validate-npm-package-name", - "which", - "write-file-atomic" - ], - "dev": true, - "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^6.5.0", - "@npmcli/config": "^6.4.0", - "@npmcli/fs": "^3.1.0", - "@npmcli/map-workspaces": "^3.0.4", - "@npmcli/package-json": "^4.0.1", - "@npmcli/promise-spawn": "^6.0.2", - "@npmcli/run-script": "^6.0.2", - "abbrev": "^2.0.0", - "archy": "~1.0.0", - "cacache": "^17.1.3", - "chalk": "^5.3.0", - "ci-info": "^3.8.0", - "cli-columns": "^4.0.0", - "cli-table3": "^0.6.3", - "columnify": "^1.6.0", - "fastest-levenshtein": "^1.0.16", - "fs-minipass": "^3.0.2", - "glob": "^10.2.7", - "graceful-fs": "^4.2.11", - "hosted-git-info": "^6.1.1", - "ini": "^4.1.1", - "init-package-json": "^5.0.0", - "is-cidr": "^4.0.2", - "json-parse-even-better-errors": "^3.0.0", - "libnpmaccess": "^7.0.2", - "libnpmdiff": "^5.0.20", - "libnpmexec": "^6.0.4", - "libnpmfund": "^4.2.1", - "libnpmhook": "^9.0.3", - "libnpmorg": "^5.0.4", - "libnpmpack": "^5.0.20", - "libnpmpublish": "^7.5.1", - "libnpmsearch": "^6.0.2", - "libnpmteam": "^5.0.3", - "libnpmversion": "^4.0.2", - "make-fetch-happen": "^11.1.1", - "minimatch": "^9.0.3", - "minipass": "^5.0.0", - "minipass-pipeline": "^1.2.4", - "ms": "^2.1.2", - "node-gyp": "^9.4.0", - "nopt": "^7.2.0", - "normalize-package-data": "^5.0.0", - "npm-audit-report": "^5.0.0", - "npm-install-checks": "^6.2.0", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.2", - "npm-profile": "^7.0.1", - "npm-registry-fetch": "^14.0.5", - "npm-user-validate": "^2.0.0", - "npmlog": "^7.0.1", - "p-map": "^4.0.0", - "pacote": "^15.2.0", - "parse-conflict-json": "^3.0.1", - "proc-log": "^3.0.0", - "qrcode-terminal": "^0.12.0", - "read": "^2.1.0", - "semver": "^7.5.4", - "sigstore": "^1.9.0", - "spdx-expression-parse": "^3.0.1", - "ssri": "^10.0.4", - "supports-color": "^9.4.0", - "tar": "^6.1.15", - "text-table": "~0.2.0", - "tiny-relative-date": "^1.3.0", - "treeverse": "^3.0.0", - "validate-npm-package-name": "^5.0.0", - "which": "^3.0.1", - "write-file-atomic": "^5.0.1" - }, - "bin": { - "npm": "bin/npm-cli.js", - "npx": "bin/npx-cli.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@colors/colors": { - "version": "1.5.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@isaacs/cliui": { - "version": "8.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@isaacs/string-locale-compare": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@npmcli/arborist": { - "version": "6.5.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.0", - "@npmcli/installed-package-contents": "^2.0.2", - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^5.0.0", - "@npmcli/name-from-folder": "^2.0.0", - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^4.0.0", - "@npmcli/query": "^3.0.0", - "@npmcli/run-script": "^6.0.0", - "bin-links": "^4.0.1", - "cacache": "^17.0.4", - "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^6.1.1", - "json-parse-even-better-errors": "^3.0.0", - "json-stringify-nice": "^1.1.4", - "minimatch": "^9.0.0", - "nopt": "^7.0.0", - "npm-install-checks": "^6.2.0", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.1", - "npm-registry-fetch": "^14.0.3", - "npmlog": "^7.0.1", - "pacote": "^15.0.8", - "parse-conflict-json": "^3.0.0", - "proc-log": "^3.0.0", - "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.2", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.7", - "ssri": "^10.0.1", - "treeverse": "^3.0.0", - "walk-up-path": "^3.0.1" - }, - "bin": { - "arborist": "bin/index.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@npmcli/config": { - "version": "6.4.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/map-workspaces": "^3.0.2", - "ci-info": "^3.8.0", - "ini": "^4.1.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.5", - "walk-up-path": "^3.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@npmcli/disparity-colors": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ansi-styles": "^4.3.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@npmcli/fs": { - "version": "3.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@npmcli/git": { - "version": "4.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "lib/index.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "3.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/name-from-folder": "^2.0.0", - "glob": "^10.2.2", - "minimatch": "^9.0.0", - "read-package-json-fast": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "cacache": "^17.0.0", - "json-parse-even-better-errors": "^3.0.0", - "pacote": "^15.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@npmcli/name-from-folder": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@npmcli/package-json": { - "version": "4.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^4.1.0", - "glob": "^10.2.2", - "hosted-git-info": "^6.1.1", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "proc-log": "^3.0.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@npmcli/query": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@npmcli/run-script": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@sigstore/bundle": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.2.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@sigstore/protobuf-specs": { - "version": "0.2.1", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@sigstore/sign": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^1.1.0", - "@sigstore/protobuf-specs": "^0.2.0", - "make-fetch-happen": "^11.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@sigstore/tuf": { - "version": "1.0.3", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.2.0", - "tuf-js": "^1.1.7" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@tootallnate/once": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@tufjs/canonical-json": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/@tufjs/models": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@tufjs/canonical-json": "1.0.0", - "minimatch": "^9.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/abbrev": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/abort-controller": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/agent-base": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/agentkeepalive": { - "version": "4.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/aggregate-error": { - "version": "3.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/aproba": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/archy": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/are-we-there-yet": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^4.1.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/base64-js": { - "version": "1.5.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/bin-links": { - "version": "4.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "cmd-shim": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "read-cmd-shim": "^4.0.0", - "write-file-atomic": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/binary-extensions": { - "version": "2.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/buffer": { - "version": "6.0.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/builtins": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/cacache": { - "version": "17.1.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/chalk": { - "version": "5.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/chownr": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/ci-info": { - "version": "3.8.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/cidr-regex": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "ip-regex": "^4.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/cli-columns": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/cli-table3": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/clone": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/cmd-shim": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/color-support": { - "version": "1.1.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/columnify": { - "version": "1.6.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/common-ancestor-path": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/console-control-strings": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/cssesc": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/debug": { - "version": "4.3.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/defaults": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/delegates": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/depd": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/diff": { - "version": "5.1.0", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/eastasianwidth": { - "version": "0.2.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/encoding": { - "version": "0.1.13", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/env-paths": { - "version": "2.2.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/err-code": { - "version": "2.0.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/event-target-shim": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/events": { - "version": "3.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/exponential-backoff": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "Apache-2.0" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/fastest-levenshtein": { - "version": "1.0.16", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/foreground-child": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/fs-minipass": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/function-bind": { - "version": "1.1.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/gauge": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^4.0.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/glob": { - "version": "10.2.7", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/has": { - "version": "1.0.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/has-unicode": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/hosted-git-info": { - "version": "6.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/http-cache-semantics": { - "version": "4.1.1", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/http-proxy-agent": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/https-proxy-agent": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/humanize-ms": { - "version": "1.2.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/iconv-lite": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/ieee754": { - "version": "1.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "BSD-3-Clause" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/ignore-walk": { - "version": "6.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minimatch": "^9.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/indent-string": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/ini": { - "version": "4.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/init-package-json": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-package-arg": "^10.0.0", - "promzard": "^1.0.0", - "read": "^2.0.0", - "read-package-json": "^6.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/ip": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/ip-regex": { - "version": "4.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/is-cidr": { - "version": "4.0.2", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "cidr-regex": "^3.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/is-core-module": { - "version": "2.13.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/is-lambda": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/jackspeak": { - "version": "2.2.1", - "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/json-stringify-nice": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/jsonparse": { - "version": "1.3.1", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/just-diff": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/just-diff-apply": { - "version": "5.5.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/libnpmaccess": { - "version": "7.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/libnpmdiff": { - "version": "5.0.20", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^6.5.0", - "@npmcli/disparity-colors": "^3.0.0", - "@npmcli/installed-package-contents": "^2.0.2", - "binary-extensions": "^2.2.0", - "diff": "^5.1.0", - "minimatch": "^9.0.0", - "npm-package-arg": "^10.1.0", - "pacote": "^15.0.8", - "tar": "^6.1.13" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/libnpmexec": { - "version": "6.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^6.5.0", - "@npmcli/run-script": "^6.0.0", - "ci-info": "^3.7.1", - "npm-package-arg": "^10.1.0", - "npmlog": "^7.0.1", - "pacote": "^15.0.8", - "proc-log": "^3.0.0", - "read": "^2.0.0", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.7", - "walk-up-path": "^3.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/libnpmfund": { - "version": "4.2.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^6.5.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/libnpmhook": { - "version": "9.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/libnpmorg": { - "version": "5.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/libnpmpack": { - "version": "5.0.20", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^6.5.0", - "@npmcli/run-script": "^6.0.0", - "npm-package-arg": "^10.1.0", - "pacote": "^15.0.8" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/libnpmpublish": { - "version": "7.5.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ci-info": "^3.6.1", - "normalize-package-data": "^5.0.0", - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3", - "proc-log": "^3.0.0", - "semver": "^7.3.7", - "sigstore": "^1.4.0", - "ssri": "^10.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/libnpmsearch": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-registry-fetch": "^14.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/libnpmteam": { - "version": "5.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/libnpmversion": { - "version": "4.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^4.0.1", - "@npmcli/run-script": "^6.0.0", - "json-parse-even-better-errors": "^3.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/lru-cache": { - "version": "7.18.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/make-fetch-happen": { - "version": "11.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minimatch": { - "version": "9.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minipass": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minipass-collect": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minipass-fetch": { - "version": "3.0.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^5.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minipass-flush": { - "version": "1.0.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minipass-json-stream": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minipass-pipeline": { - "version": "1.2.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minipass-sized": { - "version": "1.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minizlib": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/mkdirp": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/mute-stream": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/negotiator": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/node-gyp": { - "version": "9.4.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^11.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^12.13 || ^14.13 || >=16" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/node-gyp/node_modules/abbrev": { - "version": "1.1.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/node-gyp/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/node-gyp/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/node-gyp/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/node-gyp/node_modules/nopt": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "abbrev": "^1.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/node-gyp/node_modules/readable-stream": { - "version": "3.6.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/node-gyp/node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/nopt": { - "version": "7.2.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/normalize-package-data": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/npm-audit-report": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/npm-bundled": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/npm-install-checks": { - "version": "6.2.0", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/npm-package-arg": { - "version": "10.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/npm-packlist": { - "version": "7.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ignore-walk": "^6.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/npm-pick-manifest": { - "version": "8.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/npm-profile": { - "version": "7.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/npm-registry-fetch": { - "version": "14.0.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "make-fetch-happen": "^11.0.0", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", - "proc-log": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/npm-user-validate": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/npmlog": { - "version": "7.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^4.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^5.0.0", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/once": { - "version": "1.4.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/p-map": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/pacote": { - "version": "15.2.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^4.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^5.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^1.3.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/parse-conflict-json": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "just-diff": "^6.0.0", - "just-diff-apply": "^5.2.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/path-scurry": { - "version": "1.9.2", - "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/path-scurry/node_modules/lru-cache": { - "version": "9.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.0.13", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/proc-log": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/process": { - "version": "0.11.10", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/promise-all-reject-late": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/promise-call-limit": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/promise-inflight": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/promise-retry": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/promzard": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "read": "^2.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/qrcode-terminal": { - "version": "0.12.0", - "dev": true, - "inBundle": true, - "bin": { - "qrcode-terminal": "bin/qrcode-terminal.js" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/read": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "mute-stream": "~1.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/read-cmd-shim": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/read-package-json": { - "version": "6.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/read-package-json-fast": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/readable-stream": { - "version": "4.4.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/retry": { - "version": "0.12.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/safe-buffer": { - "version": "5.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/safer-buffer": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/signal-exit": { - "version": "4.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/sigstore": { - "version": "1.9.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^1.1.0", - "@sigstore/protobuf-specs": "^0.2.0", - "@sigstore/sign": "^1.0.0", - "@sigstore/tuf": "^1.0.3", - "make-fetch-happen": "^11.0.1" - }, - "bin": { - "sigstore": "bin/sigstore.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/smart-buffer": { - "version": "4.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/socks": { - "version": "2.7.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/spdx-correct": { - "version": "3.2.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/spdx-exceptions": { - "version": "2.3.0", - "dev": true, - "inBundle": true, - "license": "CC-BY-3.0" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.13", - "dev": true, - "inBundle": true, - "license": "CC0-1.0" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/ssri": { - "version": "10.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/string_decoder": { - "version": "1.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/supports-color": { - "version": "9.4.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/tar": { - "version": "6.1.15", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/tiny-relative-date": { - "version": "1.3.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/treeverse": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/tuf-js": { - "version": "1.1.7", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@tufjs/models": "1.0.4", - "debug": "^4.3.4", - "make-fetch-happen": "^11.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/unique-filename": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/unique-slug": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/validate-npm-package-license": { - "version": "3.0.4", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/validate-npm-package-name": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/walk-up-path": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/wcwidth": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/which": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/wide-align": { - "version": "1.1.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/wrap-ansi": { - "version": "8.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "9.2.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { - "version": "5.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/write-file-atomic": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/p-reduce": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", - "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/parse-json": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz", - "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.21.4", - "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^3.0.0", - "lines-and-columns": "^2.0.3", - "type-fest": "^3.8.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/parse-json/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@saithodev/semantic-release-backmerge/node_modules/path-key": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/read-pkg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", - "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^6.0.0", - "parse-json": "^7.0.0", - "type-fest": "^4.2.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/read-pkg-up": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz", - "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==", - "dev": true, - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^8.1.0", - "type-fest": "^4.2.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.2.tgz", - "integrity": "sha512-mcvrCjixA5166hSrUoJgGb9gBQN4loMYyj9zxuMs/66ibHNEFd5JXMw37YVDx58L4/QID9jIzdTBB4mDwDJ6KQ==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/read-pkg/node_modules/type-fest": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.2.tgz", - "integrity": "sha512-mcvrCjixA5166hSrUoJgGb9gBQN4loMYyj9zxuMs/66ibHNEFd5JXMw37YVDx58L4/QID9jIzdTBB4mDwDJ6KQ==", - "dev": true, - "engines": { - "node": ">=16" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@saithodev/semantic-release-backmerge/node_modules/semantic-release": { - "version": "21.1.2", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.1.2.tgz", - "integrity": "sha512-kz76azHrT8+VEkQjoCBHE06JNQgTgsC4bT8XfCzb7DHcsk9vG3fqeMVik8h5rcWCYi2Fd+M3bwA7BG8Z8cRwtA==", + "version": "22.0.12", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-22.0.12.tgz", + "integrity": "sha512-0mhiCR/4sZb00RVFJIUlMuiBkW3NMpVIW2Gse7noqEMoFGkvfPPAImEQbkBV8xga4KOPP4FdTRYuLLy32R1fPw==", "dev": true, "dependencies": { - "@semantic-release/commit-analyzer": "^10.0.0", + "@semantic-release/commit-analyzer": "^11.0.0", "@semantic-release/error": "^4.0.0", "@semantic-release/github": "^9.0.0", - "@semantic-release/npm": "^10.0.2", - "@semantic-release/release-notes-generator": "^11.0.0", + "@semantic-release/npm": "^11.0.0", + "@semantic-release/release-notes-generator": "^12.0.0", "aggregate-error": "^5.0.0", "cosmiconfig": "^8.0.0", "debug": "^4.0.0", - "env-ci": "^9.0.0", + "env-ci": "^10.0.0", "execa": "^8.0.0", - "figures": "^5.0.0", + "figures": "^6.0.0", "find-versions": "^5.1.0", "get-stream": "^6.0.0", "git-log-parser": "^1.2.0", "hook-std": "^3.0.0", "hosted-git-info": "^7.0.0", + "import-from-esm": "^1.3.1", "lodash-es": "^4.17.21", - "marked": "^5.0.0", - "marked-terminal": "^5.1.1", + "marked": "^9.0.0", + "marked-terminal": "^6.0.0", "micromatch": "^4.0.2", "p-each-series": "^3.0.0", "p-reduce": "^3.0.0", - "read-pkg-up": "^10.0.0", + "read-pkg-up": "^11.0.0", "resolve-from": "^5.0.0", "semver": "^7.3.2", "semver-diff": "^4.0.0", @@ -4408,7 +690,7 @@ "semantic-release": "bin/semantic-release.js" }, "engines": { - "node": ">=18" + "node": "^18.17 || >=20.6.1" } }, "node_modules/@saithodev/semantic-release-backmerge/node_modules/semantic-release/node_modules/@semantic-release/error": { @@ -4471,7 +753,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/semantic-release/node_modules/signal-exit": { + "node_modules/@saithodev/semantic-release-backmerge/node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", @@ -4495,31 +777,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@saithodev/semantic-release-backmerge/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@semantic-release/changelog": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.3.tgz", @@ -4591,9 +848,9 @@ } }, "node_modules/@semantic-release/github": { - "version": "9.2.3", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-9.2.3.tgz", - "integrity": "sha512-FAjXb1F84CVI6IG8fWi+XS9ErYD+s3MHkP03zBa3+GyUrV4kqwYu/WPppIciHxujGFR51SAWPkOY5rnH6ZlrxA==", + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-9.2.6.tgz", + "integrity": "sha512-shi+Lrf6exeNZF+sBhK+P011LSbhmIAoUEgEY6SsxF8irJ+J2stwI5jkyDQ+4gzYyDImzV6LCKdYB9FXnQRWKA==", "dev": true, "dependencies": { "@octokit/core": "^5.0.0", @@ -4609,8 +866,8 @@ "https-proxy-agent": "^7.0.0", "issue-parser": "^6.0.0", "lodash-es": "^4.17.21", - "mime": "^3.0.0", - "p-filter": "^3.0.0", + "mime": "^4.0.0", + "p-filter": "^4.0.0", "url-join": "^5.0.0" }, "engines": { @@ -4660,6 +917,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@semantic-release/github/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@semantic-release/github/node_modules/indent-string": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", @@ -4673,9 +942,9 @@ } }, "node_modules/@semantic-release/npm": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-11.0.1.tgz", - "integrity": "sha512-nFcT0pgVwpXsPkzjqP3ObH+pILeN1AbYscCDuYwgZEPZukL+RsGhrtdT4HA1Gjb/y1bVbE90JNtMIcgRi5z/Fg==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-11.0.2.tgz", + "integrity": "sha512-owtf3RjyPvRE63iUKZ5/xO4uqjRpVQDUB9+nnXj0xwfIeM9pRl+cG+zGDzdftR4m3f2s4Wyf3SexW+kF5DFtWA==", "dev": true, "dependencies": { "@semantic-release/error": "^4.0.0", @@ -4739,6 +1008,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@semantic-release/npm/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@semantic-release/npm/node_modules/execa": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", @@ -4820,9 +1101,9 @@ } }, "node_modules/@semantic-release/npm/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", + "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", "dev": true, "dependencies": { "path-key": "^4.0.0" @@ -4934,9 +1215,9 @@ } }, "node_modules/@sindresorhus/merge-streams": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz", - "integrity": "sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.2.0.tgz", + "integrity": "sha512-UTce8mUwUW0RikMb/eseJ7ys0BRkZVFB86orHzrfW12ZmFtym5zua8joZ4L7okH2dDFHkcFjqnZ5GocWBXOFtA==", "dev": true, "engines": { "node": ">=18" @@ -4945,12 +1226,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@types/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", - "dev": true - }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", @@ -5027,6 +1302,12 @@ "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", "dev": true }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -5045,15 +1326,6 @@ "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", "dev": true }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/before-after-hook": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", @@ -5087,32 +1359,6 @@ "node": ">=6" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cardinal": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", @@ -5156,6 +1402,81 @@ "node": ">=6" } }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cli-highlight/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cli-highlight/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-highlight/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/cli-table3": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", @@ -5289,21 +1610,29 @@ "dev": true }, "node_modules/cosmiconfig": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", - "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, "dependencies": { - "import-fresh": "^3.2.1", + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" + "parse-json": "^5.2.0" }, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/cross-spawn": { @@ -5347,15 +1676,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -5373,40 +1693,6 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -5468,9 +1754,9 @@ "dev": true }, "node_modules/env-ci": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-10.0.0.tgz", - "integrity": "sha512-U4xcd/utDYFgMh0yWj07R1H6L5fwhVbmxBCpnL0DbVSDZVnsC82HONw0wxtxNkIAcua3KtbomQvIk5xFZGAQJw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.0.0.tgz", + "integrity": "sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==", "dev": true, "dependencies": { "execa": "^8.0.0", @@ -5549,9 +1835,9 @@ } }, "node_modules/env-ci/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", + "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", "dev": true, "dependencies": { "path-key": "^4.0.0" @@ -5614,6 +1900,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -5624,24 +1919,21 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.8.0" } }, "node_modules/esprima": { @@ -5697,9 +1989,9 @@ } }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -5733,19 +2025,15 @@ } }, "node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" + "locate-path": "^2.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/find-up-simple": { @@ -5786,9 +2074,9 @@ } }, "node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -5852,16 +2140,6 @@ "through2": "~2.0.0" } }, - "node_modules/git-log-parser/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -5875,12 +2153,12 @@ } }, "node_modules/globby": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.0.tgz", - "integrity": "sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", + "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", "dev": true, "dependencies": { - "@sindresorhus/merge-streams": "^1.0.0", + "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.2", "ignore": "^5.2.4", "path-type": "^5.0.0", @@ -5913,9 +2191,9 @@ "dev": true }, "node_modules/gradle-semantic-release-plugin": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/gradle-semantic-release-plugin/-/gradle-semantic-release-plugin-1.8.0.tgz", - "integrity": "sha512-lRoKlLJvQbvRykDf6nWVuf/XyHEO9TL8dcnLX9lDag8zn5tkOqp5Tctb4re1YEek0zsSVAVX/1nw5lkV5pfm/Q==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/gradle-semantic-release-plugin/-/gradle-semantic-release-plugin-1.9.1.tgz", + "integrity": "sha512-lCrw22itszP/FLSL3N61E40vH1+CU95/4LG9ZF+Fxr8tcx7EPthh2eqVPAq67udFlM8ZgO2LETnn8LSDRq1J2w==", "dev": true, "funding": [ { @@ -5924,14 +2202,14 @@ } ], "dependencies": { - "promisified-properties": "^2.0.27", + "promisified-properties": "^3.0.0", "split2": "^4.1.0" }, "engines": { "node": ">=18" }, "peerDependencies": { - "semantic-release": "^22.0.5" + "semantic-release": "^23.0.0" } }, "node_modules/handlebars": { @@ -5955,15 +2233,6 @@ "uglify-js": "^3.1.4" } }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5974,9 +2243,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -5985,6 +2254,15 @@ "node": ">= 0.4" } }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/hook-std": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-3.0.0.tgz", @@ -6010,9 +2288,9 @@ } }, "node_modules/http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.1.tgz", + "integrity": "sha512-My1KCEPs6A0hb4qCVzYp8iEvA8j8YqcvXLZZH8C9OFuTYpYjHE7N2dtG3mRl1HMD4+VGXpF3XcDVcxGBT7yDZQ==", "dev": true, "dependencies": { "agent-base": "^7.1.0", @@ -6023,9 +2301,9 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.3.tgz", + "integrity": "sha512-kCnwztfX0KZJSLOBrcL0emLeFako55NWMovvyPP2AjsghNk9RB1yjSI+jVumPHYZsNXegNoqupSW9IY3afSH8w==", "dev": true, "dependencies": { "agent-base": "^7.0.2", @@ -6045,9 +2323,9 @@ } }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" @@ -6078,18 +2356,6 @@ "node": ">=4" } }, - "node_modules/import-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", - "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", - "dev": true, - "engines": { - "node": ">=12.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/import-from-esm": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/import-from-esm/-/import-from-esm-1.3.3.tgz", @@ -6216,34 +2482,16 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=0.12.0" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/is-stream": { @@ -6392,15 +2640,6 @@ "node": "*" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -6436,18 +2675,16 @@ } }, "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dev": true, "dependencies": { - "p-locate": "^6.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/lodash": { @@ -6474,12 +2711,6 @@ "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", "dev": true }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true - }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -6499,56 +2730,44 @@ "dev": true }, "node_modules/lru-cache": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.3.tgz", - "integrity": "sha512-B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", "dev": true, "engines": { "node": "14 || >=16.14" } }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/marked": { - "version": "9.1.6", - "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.6.tgz", - "integrity": "sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.0.tgz", + "integrity": "sha512-Vkwtq9rLqXryZnWaQc86+FHLC6tr/fycMfYAhiOIXkrNmeGAyhSxjqu0Rs1i0bBqw5u0S7+lV9fdH2ZSVaoa0w==", "dev": true, "bin": { "marked": "bin/marked.js" }, "engines": { - "node": ">= 16" + "node": ">= 18" } }, "node_modules/marked-terminal": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-6.1.0.tgz", - "integrity": "sha512-QaCSF6NV82oo6K0szEnmc65ooDeW0T/Adcyf0fcW+Hto2GT1VADFg8dn1zaeHqzj65fqDH1hMNChGNRaC/lbkA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.0.0.tgz", + "integrity": "sha512-sNEx8nn9Ktcm6pL0TnRz8tnXq/mSS0Q1FRSwJOAqw4lAB4l49UeDf85Gm1n9RPFm5qurCPjwi1StAQT2XExhZw==", "dev": true, "dependencies": { "ansi-escapes": "^6.2.0", - "cardinal": "^2.1.1", "chalk": "^5.3.0", + "cli-highlight": "^2.1.11", "cli-table3": "^0.6.3", - "node-emoji": "^2.1.0", + "node-emoji": "^2.1.3", "supports-hyperlinks": "^3.0.0" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "marked": ">=1 <11" + "marked": ">=1 <13" } }, "node_modules/meow": { @@ -6592,15 +2811,18 @@ } }, "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", + "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==", "dev": true, + "funding": [ + "https://github.com/sponsors/broofa" + ], "bin": { - "mime": "cli.js" + "mime": "bin/cli.js" }, "engines": { - "node": ">=10.0.0" + "node": ">=16" } }, "node_modules/mimic-fn": { @@ -6612,15 +2834,6 @@ "node": ">=6" } }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", @@ -6630,35 +2843,23 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -6714,9 +2915,9 @@ } }, "node_modules/npm": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/npm/-/npm-10.2.4.tgz", - "integrity": "sha512-umEuYneVEYO9KoEEI8n2sSGmNQeqco/3BSeacRlqIkCzw4E7XGtYSWMeJobxzr6hZ2n9cM+u5TsMTcC5bAgoWA==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.4.0.tgz", + "integrity": "sha512-RS7Mx0OVfXlOcQLRePuDIYdFCVBPCNapWHplDK+mh7GDdP/Tvor4ocuybRRPSvfcRb2vjRJt1fHCqw3cr8qACQ==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -6780,7 +2981,6 @@ "semver", "spdx-expression-parse", "ssri", - "strip-ansi", "supports-color", "tar", "text-table", @@ -6798,12 +2998,12 @@ "@npmcli/fs": "^3.1.0", "@npmcli/map-workspaces": "^3.0.4", "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.2", - "@sigstore/tuf": "^2.2.0", + "@npmcli/promise-spawn": "^7.0.1", + "@npmcli/run-script": "^7.0.4", + "@sigstore/tuf": "^2.3.0", "abbrev": "^2.0.0", "archy": "~1.0.0", - "cacache": "^18.0.0", + "cacache": "^18.0.2", "chalk": "^5.3.0", "ci-info": "^4.0.0", "cli-columns": "^4.0.0", @@ -6817,7 +3017,7 @@ "ini": "^4.1.1", "init-package-json": "^6.0.0", "is-cidr": "^5.0.3", - "json-parse-even-better-errors": "^3.0.0", + "json-parse-even-better-errors": "^3.0.1", "libnpmaccess": "^8.0.1", "libnpmdiff": "^6.0.3", "libnpmexec": "^7.0.4", @@ -6846,7 +3046,7 @@ "npm-user-validate": "^2.0.0", "npmlog": "^7.0.1", "p-map": "^4.0.0", - "pacote": "^17.0.4", + "pacote": "^17.0.6", "parse-conflict-json": "^3.0.1", "proc-log": "^3.0.0", "qrcode-terminal": "^0.12.0", @@ -6854,7 +3054,6 @@ "semver": "^7.5.4", "spdx-expression-parse": "^3.0.1", "ssri": "^10.0.5", - "strip-ansi": "^7.1.0", "supports-color": "^9.4.0", "tar": "^6.2.0", "text-table": "~0.2.0", @@ -6911,6 +3110,18 @@ "node": ">=12" } }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", "dev": true, @@ -6934,6 +3145,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/npm/node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", "dev": true, @@ -6957,7 +3183,7 @@ } }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "7.2.1", + "version": "7.3.1", "dev": true, "inBundle": true, "license": "ISC", @@ -6989,7 +3215,7 @@ "parse-conflict-json": "^3.0.0", "proc-log": "^3.0.0", "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.2", + "promise-call-limit": "^3.0.1", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", "ssri": "^10.0.5", @@ -7004,7 +3230,7 @@ } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "8.0.2", + "version": "8.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -7062,7 +3288,7 @@ } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "5.0.3", + "version": "5.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -7163,7 +3389,7 @@ } }, "node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "7.0.0", + "version": "7.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -7187,15 +3413,15 @@ } }, "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "7.0.2", + "version": "7.0.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", "@npmcli/promise-spawn": "^7.0.0", "node-gyp": "^10.0.0", - "read-package-json-fast": "^3.0.0", "which": "^4.0.0" }, "engines": { @@ -7213,7 +3439,7 @@ } }, "node_modules/npm/node_modules/@sigstore/bundle": { - "version": "2.1.0", + "version": "2.1.1", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -7224,6 +3450,15 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/@sigstore/core": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { "version": "0.2.1", "dev": true, @@ -7234,12 +3469,13 @@ } }, "node_modules/npm/node_modules/@sigstore/sign": { - "version": "2.2.0", + "version": "2.2.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.1.0", + "@sigstore/bundle": "^2.1.1", + "@sigstore/core": "^0.2.0", "@sigstore/protobuf-specs": "^0.2.1", "make-fetch-happen": "^13.0.0" }, @@ -7248,13 +3484,27 @@ } }, "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "2.2.0", + "version": "2.3.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { "@sigstore/protobuf-specs": "^0.2.1", - "tuf-js": "^2.1.0" + "tuf-js": "^2.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/verify": { + "version": "0.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.1.1", + "@sigstore/core": "^0.2.0", + "@sigstore/protobuf-specs": "^0.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -7291,18 +3541,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/abort-controller": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/npm/node_modules/agent-base": { "version": "7.1.0", "dev": true, @@ -7329,15 +3567,12 @@ } }, "node_modules/npm/node_modules/ansi-regex": { - "version": "6.0.1", + "version": "5.0.1", "dev": true, "inBundle": true, "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=8" } }, "node_modules/npm/node_modules/ansi-styles": { @@ -7365,14 +3600,10 @@ "license": "MIT" }, "node_modules/npm/node_modules/are-we-there-yet": { - "version": "4.0.1", + "version": "4.0.2", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^4.1.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -7383,26 +3614,6 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/base64-js": { - "version": "1.5.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/bin-links": { "version": "4.0.3", "dev": true, @@ -7436,30 +3647,6 @@ "balanced-match": "^1.0.0" } }, - "node_modules/npm/node_modules/buffer": { - "version": "6.0.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/npm/node_modules/builtins": { "version": "5.0.1", "dev": true, @@ -7470,7 +3657,7 @@ } }, "node_modules/npm/node_modules/cacache": { - "version": "18.0.0", + "version": "18.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -7480,7 +3667,7 @@ "glob": "^10.2.2", "lru-cache": "^10.0.1", "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", + "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", @@ -7562,27 +3749,6 @@ "node": ">= 10" } }, - "node_modules/npm/node_modules/cli-columns/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/cli-columns/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/cli-table3": { "version": "0.6.3", "dev": true, @@ -7656,27 +3822,6 @@ "node": ">=8.0.0" } }, - "node_modules/npm/node_modules/columnify/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/columnify/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/common-ancestor-path": { "version": "1.0.1", "dev": true, @@ -7765,12 +3910,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/delegates": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/diff": { "version": "5.1.0", "dev": true, @@ -7815,25 +3954,7 @@ "version": "2.0.3", "dev": true, "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/event-target-shim": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/npm/node_modules/events": { - "version": "3.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } + "license": "MIT" }, "node_modules/npm/node_modules/exponential-backoff": { "version": "3.1.1", @@ -7906,27 +4027,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/gauge/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/gauge/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/glob": { "version": "10.3.10", "dev": true, @@ -8030,28 +4130,8 @@ "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/ieee754": { - "version": "1.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "BSD-3-Clause" - }, "node_modules/npm/node_modules/ignore-walk": { - "version": "6.0.3", + "version": "6.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -8189,7 +4269,7 @@ } }, "node_modules/npm/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "MIT", @@ -8228,7 +4308,7 @@ "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { - "version": "8.0.1", + "version": "8.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -8241,7 +4321,7 @@ } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "6.0.3", + "version": "6.0.6", "dev": true, "inBundle": true, "license": "ISC", @@ -8261,7 +4341,7 @@ } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "7.0.4", + "version": "7.0.7", "dev": true, "inBundle": true, "license": "ISC", @@ -8283,7 +4363,7 @@ } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "5.0.1", + "version": "5.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -8295,7 +4375,7 @@ } }, "node_modules/npm/node_modules/libnpmhook": { - "version": "10.0.0", + "version": "10.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -8308,7 +4388,7 @@ } }, "node_modules/npm/node_modules/libnpmorg": { - "version": "6.0.1", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -8321,7 +4401,7 @@ } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "6.0.3", + "version": "6.0.6", "dev": true, "inBundle": true, "license": "ISC", @@ -8336,7 +4416,7 @@ } }, "node_modules/npm/node_modules/libnpmpublish": { - "version": "9.0.2", + "version": "9.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -8347,7 +4427,7 @@ "npm-registry-fetch": "^16.0.0", "proc-log": "^3.0.0", "semver": "^7.3.7", - "sigstore": "^2.1.0", + "sigstore": "^2.2.0", "ssri": "^10.0.5" }, "engines": { @@ -8355,7 +4435,7 @@ } }, "node_modules/npm/node_modules/libnpmsearch": { - "version": "7.0.0", + "version": "7.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -8367,7 +4447,7 @@ } }, "node_modules/npm/node_modules/libnpmteam": { - "version": "6.0.0", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -8380,7 +4460,7 @@ } }, "node_modules/npm/node_modules/libnpmversion": { - "version": "5.0.1", + "version": "5.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -8396,13 +4476,10 @@ } }, "node_modules/npm/node_modules/lru-cache": { - "version": "10.0.2", + "version": "10.1.0", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, "engines": { "node": "14 || >=16.14" } @@ -8454,27 +4531,15 @@ } }, "node_modules/npm/node_modules/minipass-collect": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", + "version": "2.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/npm/node_modules/minipass-fetch": { @@ -8761,12 +4826,12 @@ } }, "node_modules/npm/node_modules/npm-packlist": { - "version": "8.0.0", + "version": "8.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "ignore-walk": "^6.0.0" + "ignore-walk": "^6.0.4" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -8858,7 +4923,7 @@ } }, "node_modules/npm/node_modules/pacote": { - "version": "17.0.4", + "version": "17.0.6", "dev": true, "inBundle": true, "license": "ISC", @@ -8878,7 +4943,7 @@ "promise-retry": "^2.0.1", "read-package-json": "^7.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^2.0.0", + "sigstore": "^2.2.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, @@ -8929,7 +4994,7 @@ } }, "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.0.13", + "version": "6.0.15", "dev": true, "inBundle": true, "license": "MIT", @@ -8950,15 +5015,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/process": { - "version": "0.11.10", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/npm/node_modules/promise-all-reject-late": { "version": "1.0.1", "dev": true, @@ -8969,7 +5025,7 @@ } }, "node_modules/npm/node_modules/promise-call-limit": { - "version": "1.0.2", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -9065,22 +5121,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/readable-stream": { - "version": "4.4.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/npm/node_modules/retry": { "version": "0.12.0", "dev": true, @@ -9090,26 +5130,6 @@ "node": ">= 4" } }, - "node_modules/npm/node_modules/safe-buffer": { - "version": "5.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/safer-buffer": { "version": "2.1.2", "dev": true, @@ -9184,15 +5204,17 @@ } }, "node_modules/npm/node_modules/sigstore": { - "version": "2.1.0", + "version": "2.2.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.1.0", + "@sigstore/bundle": "^2.1.1", + "@sigstore/core": "^0.2.0", "@sigstore/protobuf-specs": "^0.2.1", - "@sigstore/sign": "^2.1.0", - "@sigstore/tuf": "^2.1.0" + "@sigstore/sign": "^2.2.1", + "@sigstore/tuf": "^2.3.0", + "@sigstore/verify": "^0.1.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -9280,15 +5302,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/string_decoder": { - "version": "1.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/npm/node_modules/string-width": { "version": "4.2.3", "dev": true, @@ -9318,37 +5331,7 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/string-width/node_modules/strip-ansi": { + "node_modules/npm/node_modules/strip-ansi": { "version": "6.0.1", "dev": true, "inBundle": true, @@ -9360,21 +5343,6 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/strip-ansi": { - "version": "7.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/npm/node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", @@ -9388,15 +5356,6 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/supports-color": { "version": "9.4.0", "dev": true, @@ -9481,7 +5440,7 @@ } }, "node_modules/npm/node_modules/tuf-js": { - "version": "2.1.0", + "version": "2.2.0", "dev": true, "inBundle": true, "license": "MIT", @@ -9629,15 +5588,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", "dev": true, @@ -9653,16 +5603,16 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "6.0.1", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { @@ -9688,6 +5638,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/npm/node_modules/write-file-atomic": { "version": "5.0.1", "dev": true, @@ -9707,6 +5672,15 @@ "inBundle": true, "license": "ISC" }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -9744,15 +5718,15 @@ } }, "node_modules/p-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", - "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz", + "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==", "dev": true, "dependencies": { - "p-map": "^5.1.0" + "p-map": "^7.0.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9763,93 +5737,41 @@ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", - "dev": true, - "dependencies": { - "aggregate-error": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" } }, - "node_modules/p-map/node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" + "p-try": "^1.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/p-map/node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "dev": true, "dependencies": { - "escape-string-regexp": "5.0.0" + "p-limit": "^1.1.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/p-map/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "node_modules/p-map": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.1.tgz", + "integrity": "sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==", "dev": true, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9865,12 +5787,12 @@ } }, "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "dev": true, "engines": { - "node": ">=6" + "node": ">=4" } }, "node_modules/parent-module": { @@ -9903,6 +5825,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, "node_modules/parsimmon": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/parsimmon/-/parsimmon-1.18.1.tgz", @@ -9910,12 +5853,12 @@ "dev": true }, "node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=4" } }, "node_modules/path-key": { @@ -9927,12 +5870,6 @@ "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -9976,73 +5913,6 @@ "node": ">=4" } }, - "node_modules/pkg-conf/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -10050,15 +5920,15 @@ "dev": true }, "node_modules/promisified-properties": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/promisified-properties/-/promisified-properties-2.0.27.tgz", - "integrity": "sha512-fmx256M3b0QcHnqOj+Ok127LoYpmnYRf7g2OyLl7qD7Z0fzNbIZhHHIPKyvegbA29iAPP5BVWv7BJ/y2cMHHjA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/promisified-properties/-/promisified-properties-3.0.0.tgz", + "integrity": "sha512-ARteuBuUpPg/+spsMhcKHvdtOW/q8btyyVYYxxegGgx+7u9ix9at8DjP2KM2t8+4SuI8wBLt+3X876FMQx91yQ==", "dev": true, "dependencies": { "parsimmon": "^1.13.0" }, "engines": { - "node": ">=14.16", + "node": ">=18", "npm": ">=7.12" } }, @@ -10088,15 +5958,6 @@ } ] }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -10150,9 +6011,9 @@ } }, "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.2.tgz", - "integrity": "sha512-mcvrCjixA5166hSrUoJgGb9gBQN4loMYyj9zxuMs/66ibHNEFd5JXMw37YVDx58L4/QID9jIzdTBB4mDwDJ6KQ==", + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.10.2.tgz", + "integrity": "sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==", "dev": true, "engines": { "node": ">=16" @@ -10161,24 +6022,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/read-pkg/node_modules/parse-json": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.0.1.tgz", - "integrity": "sha512-soKUg/q/8bcfuF3+plsbYldE74cVEVEPSC1BUPIGTaX1byXdz6Fo+CVYBdH0jj/5xWsFrNRksl11QkBgHqPQeQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", + "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.22.13", - "index-to-position": "^0.1.1", - "json-parse-even-better-errors": "^3.0.0", + "index-to-position": "^0.1.2", "type-fest": "^4.7.1" }, "engines": { @@ -10189,9 +6040,9 @@ } }, "node_modules/read-pkg/node_modules/type-fest": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.2.tgz", - "integrity": "sha512-mcvrCjixA5166hSrUoJgGb9gBQN4loMYyj9zxuMs/66ibHNEFd5JXMw37YVDx58L4/QID9jIzdTBB4mDwDJ6KQ==", + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.10.2.tgz", + "integrity": "sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==", "dev": true, "engines": { "node": ">=16" @@ -10215,19 +6066,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/redeyed": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", @@ -10258,23 +6096,6 @@ "node": ">=0.10.0" } }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -10324,9 +6145,9 @@ "dev": true }, "node_modules/semantic-release": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-22.0.8.tgz", - "integrity": "sha512-55rb31jygqIYsGU/rY+gXXm2fnxBIWo9azOjxbqKsPnq7p70zwZ5v+xnD7TxJC+zvS3sy1eHLGXYWCaX3WI76A==", + "version": "23.0.2", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-23.0.2.tgz", + "integrity": "sha512-OnVYJ6Xgzwe1x8MKswba7RU9+5djS1MWRTrTn5qsq3xZYpslroZkV9Pt0dA2YcIuieeuSZWJhn+yUWoBUHO5Fw==", "dev": true, "dependencies": { "@semantic-release/commit-analyzer": "^11.0.0", @@ -10335,9 +6156,9 @@ "@semantic-release/npm": "^11.0.0", "@semantic-release/release-notes-generator": "^12.0.0", "aggregate-error": "^5.0.0", - "cosmiconfig": "^8.0.0", + "cosmiconfig": "^9.0.0", "debug": "^4.0.0", - "env-ci": "^10.0.0", + "env-ci": "^11.0.0", "execa": "^8.0.0", "figures": "^6.0.0", "find-versions": "^5.1.0", @@ -10347,8 +6168,8 @@ "hosted-git-info": "^7.0.0", "import-from-esm": "^1.3.1", "lodash-es": "^4.17.21", - "marked": "^9.0.0", - "marked-terminal": "^6.0.0", + "marked": "^12.0.0", + "marked-terminal": "^7.0.0", "micromatch": "^4.0.2", "p-each-series": "^3.0.0", "p-reduce": "^3.0.0", @@ -10363,7 +6184,7 @@ "semantic-release": "bin/semantic-release.js" }, "engines": { - "node": "^18.17 || >=20.6.1" + "node": ">=20.8.1" } }, "node_modules/semantic-release/node_modules/@semantic-release/error": { @@ -10406,6 +6227,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/semantic-release/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/semantic-release/node_modules/execa": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", @@ -10487,9 +6320,9 @@ } }, "node_modules/semantic-release/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", + "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", "dev": true, "dependencies": { "path-key": "^4.0.0" @@ -10565,9 +6398,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -10700,15 +6533,6 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "node_modules/signale/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/signale/node_modules/figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -10792,9 +6616,9 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz", + "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==", "dev": true }, "node_modules/spdx-expression-parse": { @@ -10808,23 +6632,11 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", "dev": true }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, "node_modules/split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", @@ -10897,18 +6709,6 @@ "node": ">=6" } }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -10943,18 +6743,6 @@ "node": ">=14.18" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/temp-dir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", @@ -11018,12 +6806,43 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -11037,23 +6856,17 @@ } }, "node_modules/traverse": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", - "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", + "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/type-fest": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", @@ -11122,9 +6935,9 @@ "dev": true }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "engines": { "node": ">= 10.0.0" @@ -11224,9 +7037,9 @@ "dev": true }, "node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { "cliui": "^8.0.1", @@ -11242,15 +7055,6 @@ } }, "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", @@ -11258,18 +7062,6 @@ "engines": { "node": ">=12" } - }, - "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } } } } diff --git a/package.json b/package.json index 08aa83c90..3ee6702e5 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,9 @@ { "devDependencies": { - "@saithodev/semantic-release-backmerge": "^3.2.1", + "@saithodev/semantic-release-backmerge": "^4.0.1", "@semantic-release/changelog": "^6.0.3", "@semantic-release/git": "^10.0.1", - "gradle-semantic-release-plugin": "^1.8.0", - "semantic-release": "^22.0.8" + "gradle-semantic-release-plugin": "^1.9.1", + "semantic-release": "^23.0.2" } -} +} \ No newline at end of file diff --git a/patches.json b/patches.json index 329074220..ace3d6284 100644 --- a/patches.json +++ b/patches.json @@ -1 +1 @@ -[{"name":"Add splash animation","description":"Adds old style splash animation.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Alternative thumbnails","description":"Adds options to replace video thumbnails using the DeArrow API or image captures from the video.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Ambient mode switch","description":"Adds an option to bypass the restrictions of ambient mode or disable it completely.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Amoled","description":"Applies a pure black theme to some components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Append time stamps information","description":"Adds an option to add the current video quality or playback speed in brackets next to the current time.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Background play","description":"Enables playing music in the background.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bitrate default value","description":"Sets the audio quality to \"Always High\" when you first install the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Certificate spoof","description":"Enables YouTube Music to work with Android Auto by spoofing the YouTube Music certificate.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change package name","description":"Changes the package name for Reddit to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":false,"requiresIntegrations":false,"options":[{"key":"PackageNameReddit","default":"com.reddit.frontpage.rvx","values":{"Clone":"com.reddit.frontpage.revanced","Default":"com.reddit.frontpage.rvx"},"title":"Package name of Reddit","description":"The name of the package to rename the app to.","required":false}]},{"name":"Change player flyout panel toggles","description":"Adds an option to use text toggles instead of switch toggles within the additional settings menu.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.35","19.05.36"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Custom branding heading","description":"Applies a custom heading in the top left corner within the app.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"header","default":"yt_premium_wordmark_header","values":{"YouTube":"yt_wordmark_header","YouTube Premium":"yt_premium_wordmark_header"},"title":"Header","description":"The header to apply to the app.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- yt_wordmark_header_light.png\n- yt_wordmark_header_dark.png\nThe image dimensions must be as follows:\n- drawable-xxxhdpi: 512px x 192px\n- drawable-xxhdpi: 387px x 144px\n- drawable-xhdpi: 258px x 96px\n- drawable-hdpi: 194px x 72px\n- drawable-mdpi: 129px x 48px","required":false}]},{"name":"Custom branding icon YouTube","description":"Change the YouTube launcher icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Revancify Blue","values":{"MMT":"mmt","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red"},"title":"App icon","description":"The path to a folder must contain one or more of the following folders matching the DPI of your device:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders has to have the following files:\n\n- adaptiveproduct_youtube_background_color_108.png\n- adaptiveproduct_youtube_foreground_color_108.png\n- ic_launcher.png\n- ic_launcher_round.png","required":false}]},{"name":"Custom branding icon YouTube Music","description":"Changes the YouTube Music app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":false,"requiresIntegrations":false,"options":[{"key":"SplashHeaderIcon","default":true,"values":null,"title":"Splash and header icons","description":"Apply custom branding icon to Splash and Header.","required":true},{"key":"AppIcon","default":"Revancify Blue","values":{"MMT":"mmt","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red"},"title":"App icon","description":"The path to a folder containing the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders has to have the following files:\n\n- adaptiveproduct_youtube_music_background_color_108.png\n- adaptiveproduct_youtube_music_foreground_color_108.png\n- ic_launcher_release.png","required":false}]},{"name":"Custom branding name Reddit","description":"Renames the Reddit app to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"RVX Reddit","values":null,"title":"App name","description":"The name of the app.","required":false}]},{"name":"Custom branding name YouTube","description":"Rename the YouTube app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"ReVanced Extended","values":{"Full name":"ReVanced Extended","Short name":"RVX"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name YouTube Music","description":"Renames the YouTube Music app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppNameNotification","default":"ReVanced Extended Music","values":{"Full name":"ReVanced Extended Music","Short name":"RVX Music"},"title":"App name in notification panel","description":"The name of the app as it appears in the notification panel.","required":true},{"key":"AppNameLauncher","default":"RVX Music","values":{"Full name":"ReVanced Extended Music","Short name":"RVX Music"},"title":"App name in launcher","description":"The name of the app as it appears in the launcher.","required":true}]},{"name":"Custom double tap length","description":"Add \u0027double-tap to seek\u0027 value.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DoubleTapLengthArrays","default":"3, 5, 10, 15, 20, 30, 60, 120, 180","values":null,"title":"Double-tap to seek Values","description":"A list of custom double-tap to seek lengths. Be sure to separate them with commas (,).","required":true}]},{"name":"Custom package name","description":"Changes the package name for the non-root build of YouTube and YouTube Music to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":null},{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[{"key":"PackageNameYouTube","default":"anddea.youtube","values":{"Clone":"bill.youtube","Default":"anddea.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in MicroG support","required":true},{"key":"PackageNameYouTubeMusic","default":"anddea.youtube.music","values":{"Clone":"bill.youtube.music","Default":"anddea.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in MicroG support","required":true}]},{"name":"Custom playback speed","description":"Adds an option to customize available playback speeds.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Custom playback speed","description":"Adds options to customize available playback speeds.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Custom player overlay opacity","description":"Adds an option to change the opacity of the video player background when player controls are visible.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Custom seekbar color","description":"Adds an option to customize seekbar colors in video players and video thumbnails.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Default playback speed","description":"Adds an option to set the default playback speed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Default video quality","description":"Adds an option to set the default video quality.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable HDR video","description":"Adds options to disable HDR video.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable QUIC protocol","description":"Adds an option to disable CronetEngine\u0027s QUIC protocol.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable haptic feedback","description":"Adds an option to disable haptic feedback when swiping the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable landscape mode","description":"Adds an option to disable landscape mode when entering fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable overlay filter","description":"Removes the dark overlay when comment, share, save to playlist, and flyout panels are open.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Disable pip notification","description":"Disable pip notification when you first launch pip mode.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable rolling number animations","description":"Adds an option to disable rolling number animations of video view count, user likes, and upload time.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable screenshot popup","description":"Adds an option to disable the popup that shows up when taking a screenshot.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable shorts on startup","description":"Adds an option to disable the Shorts player from resuming on app startup when Shorts were last being watched.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable speed overlay","description":"Adds an option to disable \u0027Play at 2x speed\u0027 when pressing and holding in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable update screen","description":"Adds an option to disable the \"Update your app\" screen that appears when using an outdated client.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable black navigation bar","description":"Adds an option to set the navigation bar color to black.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable bottom player gestures","description":"Adds an option to enter fullscreen when swiping down below the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable color match player","description":"Adds an option to match the color of the miniplayer to the fullscreen player. Deprecated on YT Music 6.34.51+.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.21.52","6.22.52","6.23.56","6.25.53","6.26.51","6.27.54","6.28.53","6.29.58","6.31.55","6.33.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Enable compact controls overlay","description":"Adds an option to make the fullscreen controls compact.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable compact dialog","description":"Adds an option to enable the compact flyout menu on phones.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable custom filter","description":"Adds a custom filter which can be used to hide layout components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable external browser","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable force minimized player","description":"Adds an option to keep the miniplayer minimized even when another track is played.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable gradient loading screen","description":"Adds an option to enable gradient loading screen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable landscape mode","description":"Adds an option to enable landscape mode when rotating the screen on phones.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable language switch","description":"Adds an option to enable or disable language switching toggle.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable minimized playback","description":"Enables playback in miniplayer for Kids music.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable minimized playback","description":"Enables minimized and background playback.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable new splash animation","description":"Adds an option to enable a new type of splash animation.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable new thumbnail preview","description":"Adds an option to enables the new seekbar thumbnails preview.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable old player background","description":"Adds an option to return the player background to the old style. Deprecated on YT Music 6.34.51+.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.21.52","6.22.52","6.23.56","6.25.53","6.26.51","6.27.54","6.28.53","6.29.58","6.31.55","6.33.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Enable old player layout","description":"Adds an option to return the player layout to the old style. Deprecated on YT Music 6.31.55+.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.21.52","6.22.52","6.23.56","6.25.53","6.26.51","6.27.54","6.28.53","6.29.58","6.31.55","6.33.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Enable old quality layout","description":"Adds an option to restore the old video quality menu with specific video resolution options.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable old style library shelf","description":"Adds an option to return the library tab to the old style.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable old style miniplayer","description":"Adds an option to return the miniplayer to the old style.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable opus codec","description":"Adds an option use the opus audio codec instead of the mp4a audio codec.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable playback speed","description":"Adds an option to add a playback speed button to the flyout panel.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable seekbar tapping","description":"Adds an option to enable tap-to-seek on the seekbar of the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable song search","description":"Adds an option to enable song search in the voice search screen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable tablet mini player","description":"Adds an option to enable the tablet mini player layout.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable tablet navigation bar","description":"Adds an option to enable the tablet navigation bar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable wide search bar","description":"Adds an option to replace the search icon with a wide search bar. This will hide the YouTube logo when active.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable zen mode","description":"Adds an option to change the player background to light grey to reduce eye strain. Deprecated on YT Music 6.34.51+.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.21.52","6.22.52","6.23.56","6.25.53","6.26.51","6.27.54","6.28.53","6.29.58","6.31.55","6.33.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Exclusive audio playback","description":"Unlocks the option to play music without video.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Force fullscreen","description":"Adds an option to forcefully open videos in fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Force opus codec","description":"Adds an option to force the opus audio codec instead of the mp4a audio codec.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Force video codec","description":"Adds an option to force the video codec.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Header switch","description":"Add switch to change header.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide \"New\" button","description":"Adds an option to hide the \"New\" button in the library.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide account menu","description":"Adds the ability to hide account menu elements using a custom filter.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide account menu","description":"Adds the ability to hide account menu elements using a custom filter in the account menu and You tab.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action bar component","description":"Adds options to hide action bar components and replace the offline download button with an external download button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":true,"options":[]},{"name":"Hide animated button background","description":"Hides the background of the pause and play animated buttons in the Shorts player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide auto player popup panels","description":"Adds an option to hide panels (such as live chat) from opening automatically.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide autoplay button","description":"Adds an option to hide the autoplay button in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide autoplay preview","description":"Adds an option to hide the autoplay preview container when in fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide button container","description":"Adds options to hide action buttons below the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide button shelf","description":"Adds an option to hide the button shelf from the homepage and explore tab.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide captions button","description":"Adds an option to hide the captions button in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide carousel shelf","description":"Adds an option to hide the carousel shelf from the homepage and explore tab.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide cast button","description":"Adds an option to hide the cast button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide cast button","description":"Adds an option to hide the cast button.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide category bar","description":"Adds an option to hide the category bar.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide category bar","description":"Adds an option to hide the category bar in feeds.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide channel avatar section","description":"Adds an option to hide the channel avatar section of the subscription feed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide channel guidelines","description":"Adds an option to hide the channel guidelines at the top of the comments section.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide channel profile components","description":"Adds an option to hide channel profile components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide channel watermark","description":"Adds an option to hide creator\u0027s watermarks in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide collapse button","description":"Adds an option to hide the collapse button in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide comment component","description":"Adds options to hide components related to comments.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide crowdfunding box","description":"Adds an option to hide the crowdfunding box between the player and video description.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide description components","description":"Adds an option to hide description components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide double tap overlay filter","description":"Removes the dark overlay when double-tapping to seek.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide double tap overlay filter","description":"Hides the double tap dark filter layer.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide double tap to like animations","description":"Hides the like animations when double tap the screen in the Shorts player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide emoji picker and time stamp","description":"Adds an option to hide the emoji picker and time stamp when typing comments.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide end screen cards","description":"Adds an option to hide suggested video cards at the end of the video in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide end screen overlay","description":"Adds an option to hide the overlay in fullscreen when swiping up and at the end of videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed flyout panel","description":"Adds the ability to hide feed flyout panel components using a custom filter.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide filmstrip overlay","description":"Adds an option to hide filmstrip overlay in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide floating microphone","description":"Adds an option to hide the floating microphone button when searching.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide flyout panel","description":"Adds options to hide flyout panel components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide fullscreen button","description":"Force to hide fullscreen button in player bottom UI container.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide fullscreen panels","description":"Adds an option to hide panels such as live chat when in fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide fullscreen share button","description":"Adds an option to hide the share button in the fullscreen player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide general ads","description":"Adds options to hide general ads.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide general ads","description":"Adds options to hide general ads.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide get premium","description":"Hides the \"Get Music Premium\" label from the account menu and settings.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide handle","description":"Adds an option to hide the handle in the account menu.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide handle","description":"Adds options to hide the handle in the account switcher and You tab.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide history button","description":"Adds an option to hide the history button in the toolbar.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide info cards","description":"Adds an option to hide info-cards in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide latest videos button","description":"Adds options to hide latest videos button in home feed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide load more button","description":"Adds an option to hide the button under videos that loads similar videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide mix playlists","description":"Adds an option to hide mix playlists in feed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide music button","description":"Adds an option to hide the YouTube Music button in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation bar component","description":"Adds options to hide navigation bar components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation buttons","description":"Adds options to hide buttons in the navigation bar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation buttons","description":"Adds options to hide and change navigation buttons (such as the Shorts button).","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation label","description":"Adds an option to hide navigation bar labels.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player buttons background","description":"Force to hide the dark background surrounding the video player controls.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide player chapters","description":"Forces to hide chapters in player bottom UI container.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide player flyout panel","description":"Adds options to hide player flyout panel components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player overlay filter","description":"Removes the dark overlay when single-tapping player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide playlist cards","description":"Adds an option to hide playlist cards from the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide previous next button","description":"Adds an option to hide the previous and next buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide recently visited shelf","description":"Adds an option to hide the recently visited shelf in the sidebar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide sample shelf","description":"Adds an option to hide the sample shelf from the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide search term thumbnail","description":"Adds an option to hide thumbnails in the search term history.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide seek message","description":"Adds an option to hide the \u0027Slide left or right to seek\u0027 or \u0027Release to cancel\u0027 message container in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide seekbar","description":"Adds an option to hide the seekbar in video player and video thumbnails.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide shorts components","description":"Adds options to hide components related to YouTube Shorts.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide snack bar","description":"Adds an option to hide the snack bar action popup.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide suggested actions","description":"Adds an option to hide the suggested actions bar inside the player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide suggested video overlay","description":"Adds an option to hide the suggested video overlay at the end of videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide suggestions shelf","description":"Adds an option to hide the suggestions shelf in feed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide tap to update button","description":"Adds an option to hide the tap to update button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide taste builder","description":"Hides the \"Tell us which artists you like\" card from the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide terms container","description":"Adds an option to hide the terms of service container in the account menu.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide time stamp","description":"Adds an option to hide the timestamp in the bottom left of the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide toolbar button","description":"Adds an option to hide the r/place or Reddit recap button in the toolbar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide toolbar button","description":"Adds an option to hide the button in the toolbar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide tooltip content","description":"Hides the tooltip box that appears when opening the app for the first time.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide tooltip content","description":"Hides the tooltip box that appears on first install.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide trending searches","description":"Adds an option to hide trending searches in the search bar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide video ads","description":"Adds an option to hide ads in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide voice search button","description":"Hides the voice search button in the search bar.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide voice search button","description":"Hide voice search button in search bar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Keep landscape mode","description":"Adds an option to keep landscape mode when turning the screen off and on in fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Layout switch","description":"Adds an option to trick dpi to use tablet or phone layout.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"MaterialYou","description":"Enables MaterialYou theme for Android 12+","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"MicroG support","description":"Allows YouTube Music to run without root and under a different package name with MicroG.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"MicroG support","description":"Allows ReVanced Extended to run without root and under a different package name with MicroG.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links externally","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Overlay buttons","description":"Adds an option to display overlay buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"OutlineIcon","default":true,"values":null,"title":"Outline icons","description":"Apply the outline icon","required":true},{"key":"BottomMargin","default":"0.0dip","values":{"Wider":"6.0dip","Default":"0.0dip"},"title":"Bottom margin","description":"Apply bottom margin to Overlay buttons and Timestamp","required":false}]},{"name":"Premium icon","description":"Unlocks premium app icons.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Quick actions components","description":"Adds options to hide and customize components below the seekbar in fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remember playback speed","description":"Adds an option to remember the last playback speed selected.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remember repeat state","description":"Adds an option to remember the state of the repeat toggle.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remember shuffle state","description":"Adds an option to remember the state of the shuffle toggle.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remember video quality","description":"Adds an option to remember the last video quality selected.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove subreddit dialog","description":"Adds options to remove the NSFW community warning and notifications suggestion dialogs by dismissing them automatically.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Replace cast button","description":"Adds an option to replace the cast button in the player with the \"Open music\" button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Replace dismiss queue","description":"Adds an option to replace \"Dismiss queue\" with \"Watch on YouTube\" in the flyout menu.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of songs using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Shows the dislike count of videos using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Settings","description":"Adds ReVanced Extended settings to YouTube Music.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Settings","description":"Adds ReVanced Extended settings to Reddit.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":true,"options":[]},{"name":"Settings","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":true,"options":[]},{"name":"Settings icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.youtube","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Shorts overlay buttons","description":"Apply the new icons to the action buttons of the Shorts player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"TikTok","values":{"Outline":"outline","OutlineCircle":"outlinecircle","TikTok":"tiktok"},"title":"Icon type of Shorts","description":"Apply different icons for Shorts action buttons.","required":false}]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments such as non-music sections.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Integrates SponsorBlock which allows skipping video segments such as sponsored content.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"OutlineIcon","default":true,"values":null,"title":"Outline icons","description":"Apply the outline icon","required":true}]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube Music client version. This can remove the radio mode restriction in Canadian regions or disable real-time lyrics.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube client version. This can be used to restore old UI elements and features.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof device dimensions","description":"Adds an option to spoof the device dimensions which unlocks higher video qualities if they aren\u0027t available on the device.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof player parameters","description":"Adds options to spoof player parameters to prevent playback issues.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Swipe controls","description":"Adds options to enable and configure volume and brightness swipe controls.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Theme","description":"Change the app\u0027s theme to the values specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DarkThemeBackgroundColor","default":"#FF010101","values":{"Black":"#FF010101","Catppuccin (Mocha)":"#FF181825","Dark Pink":"#FF290025","Dark Blue":"#FF001029","Dark Green":"#FF002905","Dark Yellow":"#FF282900","Dark Orange":"#FF291800","Dark Red":"#FF290000"},"title":"Dark theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true},{"key":"AdvancedDarkThemeBackgroundColor","default":"#FF252A3A","values":{"Advanced Dark Color":"#FF252A3A"},"title":"Advanced dark theme color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true},{"key":"LightThemeBackgroundColor","default":"#FFFFFFFF","values":{"White":"#FFFFFFFF","Catppuccin (Latte)":"#FFE6E9EF","Light Pink":"#FFFCCFF3","Light Blue":"#FFD1E0FF","Light Green":"#FFCCFFCC","Light Yellow":"#FFFDFFCC","Light Orange":"#FFFFE6CC","Light Red":"#FFFFD6D6"},"title":"Light theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":false},{"key":"AdvancedLightThemeBackgroundColor","default":"#FFF2F8FF","values":{"Advanced Light Color":"#FFF2F8FF"},"title":"Advanced light theme color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true},{"key":"SeekbarBackgroundColor","default":"#FFFF0000","values":{"Seekbar Color":"#FFFF0000"},"title":"Seekbar color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true}]},{"name":"Translations","description":"Adds Crowdin translations for YouTube Music.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Translations","description":"Add Crowdin translations for YouTube.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.37"]}],"use":true,"requiresIntegrations":false,"options":[]}] \ No newline at end of file +[{"name":"Add splash animation","description":"Adds old style splash animation.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Alternative thumbnails","description":"Adds options to replace video thumbnails using the DeArrow API or image captures from the video.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Ambient mode switch","description":"Adds an option to bypass the restrictions of ambient mode or disable it completely.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Amoled","description":"Applies a pure black theme to some components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Append time stamps information","description":"Adds an option to add the current video quality or playback speed in brackets next to the current time.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Background play","description":"Enables playing music in the background.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Bitrate default value","description":"Sets the audio quality to \"Always High\" when you first install the app.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Certificate spoof","description":"Enables YouTube Music to work with Android Auto by spoofing the YouTube Music certificate.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change package name","description":"Changes the package name for Reddit to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":false,"requiresIntegrations":false,"options":[{"key":"PackageNameReddit","default":"com.reddit.frontpage.rvx","values":{"Clone":"com.reddit.frontpage.revanced","Default":"com.reddit.frontpage.rvx"},"title":"Package name of Reddit","description":"The name of the package to rename the app to.","required":false}]},{"name":"Change player flyout panel toggles","description":"Adds an option to use text toggles instead of switch toggles within the additional settings menu.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.35","19.05.36"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Change start page","description":"Adds an option to set which page the app opens in instead of the homepage.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Custom branding heading","description":"Applies a custom heading in the top left corner within the app.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"header","default":"yt_premium_wordmark_header","values":{"YouTube":"yt_wordmark_header","YouTube Premium":"yt_premium_wordmark_header"},"title":"Header","description":"The header to apply to the app.\n\nIf a path to a folder is provided, the folder must contain one or more of the following folders, depending on the DPI of the device:\n\n- drawable-xxxhdpi\n- drawable-xxhdpi\n- drawable-xhdpi\n- drawable-hdpi\n- drawable-mdpi\n\nEach of the folders must contain all of the following files:\n\n- yt_wordmark_header_light.png\n- yt_wordmark_header_dark.png\nThe image dimensions must be as follows:\n- drawable-xxxhdpi: 512px x 192px\n- drawable-xxhdpi: 387px x 144px\n- drawable-xhdpi: 258px x 96px\n- drawable-hdpi: 194px x 72px\n- drawable-mdpi: 129px x 48px","required":false}]},{"name":"Custom branding icon YouTube","description":"Change the YouTube launcher icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppIcon","default":"Revancify Blue","values":{"MMT":"mmt","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red"},"title":"App icon","description":"The path to a folder must contain one or more of the following folders matching the DPI of your device:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders has to have the following files:\n\n- adaptiveproduct_youtube_background_color_108.png\n- adaptiveproduct_youtube_foreground_color_108.png\n- ic_launcher.png\n- ic_launcher_round.png","required":false}]},{"name":"Custom branding icon YouTube Music","description":"Changes the YouTube Music app icon to the icon specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":false,"requiresIntegrations":false,"options":[{"key":"SplashHeaderIcon","default":true,"values":null,"title":"Splash and header icons","description":"Apply custom branding icon to Splash and Header.","required":true},{"key":"AppIcon","default":"Revancify Blue","values":{"MMT":"mmt","Revancify Blue":"revancify_blue","Revancify Red":"revancify_red"},"title":"App icon","description":"The path to a folder containing the following folders:\n\n- mipmap-xxxhdpi\n- mipmap-xxhdpi\n- mipmap-xhdpi\n- mipmap-hdpi\n- mipmap-mdpi\n\nEach of these folders has to have the following files:\n\n- adaptiveproduct_youtube_music_background_color_108.png\n- adaptiveproduct_youtube_music_foreground_color_108.png\n- ic_launcher_release.png","required":false}]},{"name":"Custom branding name Reddit","description":"Renames the Reddit app to the name specified in options.json.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"RVX Reddit","values":null,"title":"App name","description":"The name of the app.","required":false}]},{"name":"Custom branding name YouTube","description":"Rename the YouTube app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppName","default":"ReVanced Extended","values":{"Full name":"ReVanced Extended","Short name":"RVX"},"title":"App name","description":"The name of the app.","required":true}]},{"name":"Custom branding name YouTube Music","description":"Renames the YouTube Music app to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":false,"requiresIntegrations":false,"options":[{"key":"AppNameNotification","default":"ReVanced Extended Music","values":{"Full name":"ReVanced Extended Music","Short name":"RVX Music"},"title":"App name in notification panel","description":"The name of the app as it appears in the notification panel.","required":true},{"key":"AppNameLauncher","default":"RVX Music","values":{"Full name":"ReVanced Extended Music","Short name":"RVX Music"},"title":"App name in launcher","description":"The name of the app as it appears in the launcher.","required":true}]},{"name":"Custom double tap length","description":"Add \u0027double-tap to seek\u0027 value.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DoubleTapLengthArrays","default":"3, 5, 10, 15, 20, 30, 60, 120, 180","values":null,"title":"Double-tap to seek Values","description":"A list of custom double-tap to seek lengths. Be sure to separate them with commas (,).","required":true}]},{"name":"Custom package name","description":"Changes the package name for the non-root build of YouTube and YouTube Music to the name specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":null},{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[{"key":"PackageNameYouTube","default":"com.rve.android.youtube","values":{"Clone":"app.rve.android.youtube","Default":"com.rve.android.youtube"},"title":"Package name of YouTube","description":"The name of the package to use in MicroG support","required":true},{"key":"PackageNameYouTubeMusic","default":"com.rve.android.apps.youtube.music","values":{"Clone":"app.rve.android.apps.youtube.music","Default":"com.rve.android.apps.youtube.music"},"title":"Package name of YouTube Music","description":"The name of the package to use in MicroG support","required":true}]},{"name":"Custom playback speed","description":"Adds an option to customize available playback speeds.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Custom playback speed","description":"Adds options to customize available playback speeds.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Custom player overlay opacity","description":"Adds an option to change the opacity of the video player background when player controls are visible.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Custom seekbar color","description":"Adds an option to customize seekbar colors in video players and video thumbnails.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Default playback speed","description":"Adds an option to set the default playback speed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Default video quality","description":"Adds an option to set the default video quality.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable HDR video","description":"Adds options to disable HDR video.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable QUIC protocol","description":"Adds an option to disable CronetEngine\u0027s QUIC protocol.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable auto captions","description":"Adds an option to disable captions from being automatically enabled.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable haptic feedback","description":"Adds an option to disable haptic feedback when swiping the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable landscape mode","description":"Adds an option to disable landscape mode when entering fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable overlay filter","description":"Removes the dark overlay when comment, share, save to playlist, and flyout panels are open.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Disable pip notification","description":"Disable pip notification when you first launch pip mode.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable rolling number animations","description":"Adds an option to disable rolling number animations of video view count, user likes, and upload time.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable screenshot popup","description":"Adds an option to disable the popup that shows up when taking a screenshot.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable shorts on startup","description":"Adds an option to disable the Shorts player from resuming on app startup when Shorts were last being watched.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable speed overlay","description":"Adds an option to disable \u0027Play at 2x speed\u0027 when pressing and holding in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Disable update screen","description":"Adds an option to disable the \"Update your app\" screen that appears when using an outdated client.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable black navigation bar","description":"Adds an option to set the navigation bar color to black.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable bottom player gestures","description":"Adds an option to enter fullscreen when swiping down below the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable color match player","description":"Adds an option to match the color of the miniplayer to the fullscreen player. Deprecated on YT Music 6.34.51+.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.21.52","6.22.52","6.23.56","6.25.53","6.26.51","6.27.54","6.28.53","6.29.58","6.31.55","6.33.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Enable compact controls overlay","description":"Adds an option to make the fullscreen controls compact.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable compact dialog","description":"Adds an option to enable the compact flyout menu on phones.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable custom filter","description":"Adds a custom filter which can be used to hide layout components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Enable debug logging","description":"Adds an option to enable debug logging.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Enable external browser","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable force minimized player","description":"Adds an option to keep the miniplayer minimized even when another track is played.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable gradient loading screen","description":"Adds an option to enable gradient loading screen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable landscape mode","description":"Adds an option to enable landscape mode when rotating the screen on phones.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable language switch","description":"Adds an option to enable or disable language switching toggle.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable minimized playback","description":"Enables playback in miniplayer for Kids music.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable minimized playback","description":"Enables minimized and background playback.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable new splash animation","description":"Adds an option to enable a new type of splash animation.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable new thumbnail preview","description":"Adds an option to enables the new seekbar thumbnails preview.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable old player background","description":"Adds an option to return the player background to the old style. Deprecated on YT Music 6.34.51+.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.21.52","6.22.52","6.23.56","6.25.53","6.26.51","6.27.54","6.28.53","6.29.58","6.31.55","6.33.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Enable old player layout","description":"Adds an option to return the player layout to the old style. Deprecated on YT Music 6.31.55+.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.21.52","6.22.52","6.23.56","6.25.53","6.26.51","6.27.54","6.28.53","6.29.58","6.31.55","6.33.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Enable old quality layout","description":"Adds an option to restore the old video quality menu with specific video resolution options.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable old style library shelf","description":"Adds an option to return the library tab to the old style.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable old style miniplayer","description":"Adds an option to return the miniplayer to the old style.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable opus codec","description":"Adds an option use the opus audio codec instead of the mp4a audio codec.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable playback speed","description":"Adds an option to add a playback speed button to the flyout panel.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable seekbar tapping","description":"Adds an option to enable tap-to-seek on the seekbar of the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable song search","description":"Adds an option to enable song search in the voice search screen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable tablet mini player","description":"Adds an option to enable the tablet mini player layout.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable tablet navigation bar","description":"Adds an option to enable the tablet navigation bar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable wide search bar","description":"Adds an option to replace the search icon with a wide search bar. This will hide the YouTube logo when active.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Enable zen mode","description":"Adds an option to change the player background to light grey to reduce eye strain. Deprecated on YT Music 6.34.51+.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":["6.21.52","6.22.52","6.23.56","6.25.53","6.26.51","6.27.54","6.28.53","6.29.58","6.31.55","6.33.52"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Exclusive audio playback","description":"Unlocks the option to play music without video.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Force fullscreen","description":"Adds an option to forcefully open videos in fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Force opus codec","description":"Adds an option to force the opus audio codec instead of the mp4a audio codec.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Force video codec","description":"Adds an option to force the video codec.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Header switch","description":"Add switch to change header.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide \"New\" button","description":"Adds an option to hide the \"New\" button in the library.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide account menu","description":"Adds the ability to hide account menu elements using a custom filter.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide account menu","description":"Adds the ability to hide account menu elements using a custom filter in the account menu and You tab.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide action bar component","description":"Adds options to hide action bar components and replace the offline download button with an external download button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide ads","description":"Adds options to hide ads.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":true,"options":[]},{"name":"Hide animated button background","description":"Force to hide the background of the pause and play animated buttons in the Shorts player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide auto player popup panels","description":"Adds an option to hide panels (such as live chat) from opening automatically.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide autoplay button","description":"Adds an option to hide the autoplay button in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide autoplay preview","description":"Adds an option to hide the autoplay preview container when in fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide button container","description":"Adds options to hide action buttons below the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide button shelf","description":"Adds an option to hide the button shelf from the homepage and explore tab.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide captions button","description":"Adds an option to hide the captions button in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide carousel shelf","description":"Adds an option to hide the carousel shelf from the homepage and explore tab.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide cast button","description":"Adds an option to hide the cast button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide cast button","description":"Adds an option to hide the cast button.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide category bar","description":"Adds an option to hide the category bar.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide category bar","description":"Adds an option to hide the category bar in feeds.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide channel avatar section","description":"Adds an option to hide the channel avatar section of the subscription feed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide channel guidelines","description":"Adds an option to hide the channel guidelines at the top of the comments section.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide channel profile components","description":"Adds an option to hide channel profile components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide channel watermark","description":"Adds an option to hide creator\u0027s watermarks in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide collapse button","description":"Adds an option to hide the collapse button in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide comment component","description":"Adds options to hide components related to comments.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide crowdfunding box","description":"Adds an option to hide the crowdfunding box between the player and video description.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide description components","description":"Adds an option to hide description components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide double tap overlay filter","description":"Removes the dark overlay when double-tapping to seek.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide double tap overlay filter","description":"Hides the double tap dark filter layer.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide double tap to like animations","description":"Force to hide the like animations when double tap the screen in the Shorts player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide emoji picker and time stamp","description":"Adds an option to hide the emoji picker and time stamp when typing comments.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide end screen cards","description":"Adds an option to hide suggested video cards at the end of the video in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide end screen overlay","description":"Adds an option to hide the overlay in fullscreen when swiping up and at the end of videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide feed flyout panel","description":"Adds the ability to hide feed flyout panel components using a custom filter.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide filmstrip overlay","description":"Adds an option to hide filmstrip overlay in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide floating microphone","description":"Adds an option to hide the floating microphone button when searching.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide flyout panel","description":"Adds options to hide flyout panel components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide fullscreen button","description":"Force to hide fullscreen button in player bottom UI container.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide fullscreen panels","description":"Adds an option to hide panels such as live chat when in fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide fullscreen share button","description":"Adds an option to hide the share button in the fullscreen player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide general ads","description":"Adds options to hide general ads.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide general ads","description":"Adds options to hide general ads.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide get premium","description":"Hides the \"Get Music Premium\" label from the account menu and settings.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide handle","description":"Adds an option to hide the handle in the account menu.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide handle","description":"Adds options to hide the handle in the account switcher and You tab.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide history button","description":"Adds an option to hide the history button in the toolbar.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide info cards","description":"Adds an option to hide info-cards in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide latest videos button","description":"Adds options to hide latest videos button in home feed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide layout components","description":"Adds options to hide general layout components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide load more button","description":"Adds an option to hide the button under videos that loads similar videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide mix playlists","description":"Adds an option to hide mix playlists in feed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide music button","description":"Adds an option to hide the YouTube Music button in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation bar component","description":"Adds options to hide navigation bar components.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation buttons","description":"Adds options to hide buttons in the navigation bar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation buttons","description":"Adds options to hide and change navigation buttons (such as the Shorts button).","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide navigation label","description":"Adds an option to hide navigation bar labels.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player buttons background","description":"Force to hide the dark background surrounding the video player controls.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide player chapters","description":"Force to hide chapters in player bottom UI container.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide player flyout panel","description":"Adds options to hide player flyout panel components.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide player overlay filter","description":"Removes the dark overlay when single-tapping player.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide playlist cards","description":"Adds an option to hide playlist cards from the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide previous next button","description":"Adds an option to hide the previous and next buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide recently visited shelf","description":"Adds an option to hide the recently visited shelf in the sidebar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide sample shelf","description":"Adds an option to hide the sample shelf from the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide search term thumbnail","description":"Adds an option to hide thumbnails in the search term history.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide seek message","description":"Adds an option to hide the \u0027Slide left or right to seek\u0027 or \u0027Release to cancel\u0027 message container in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide seekbar","description":"Adds an option to hide the seekbar in video player and video thumbnails.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide shorts components","description":"Adds options to hide components related to YouTube Shorts.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide snack bar","description":"Adds an option to hide the snack bar action popup.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide suggested actions","description":"Adds an option to hide the suggested actions bar inside the player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide suggested video overlay","description":"Adds an option to hide the suggested video overlay at the end of videos.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide suggestions shelf","description":"Adds an option to hide the suggestions shelf in feed.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide tap to update button","description":"Adds an option to hide the tap to update button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide taste builder","description":"Hides the \"Tell us which artists you like\" card from the homepage.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide terms container","description":"Adds an option to hide the terms of service container in the account menu.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide time stamp","description":"Adds an option to hide the timestamp in the bottom left of the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide toolbar button","description":"Adds an option to hide the r/place or Reddit recap button in the toolbar.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide toolbar button","description":"Adds an option to hide the button in the toolbar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide tooltip content","description":"Hides the tooltip box that appears when opening the app for the first time.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide tooltip content","description":"Hides the tooltip box that appears on first install.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide trending searches","description":"Adds an option to hide trending searches in the search bar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide video ads","description":"Adds an option to hide ads in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Hide voice search button","description":"Force to hide the voice search button in the search bar.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Hide voice search button","description":"Force to hide the voice search button in the search bar.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Keep landscape mode","description":"Adds an option to keep landscape mode when turning the screen off and on in fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Layout switch","description":"Adds an option to trick dpi to use tablet or phone layout.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"MaterialYou","description":"Enables MaterialYou theme for Android 12+","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"MicroG support","description":"Allows YouTube Music to run without root and under a different package name with MicroG.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"MicroG support","description":"Allows ReVanced Extended to run without root and under a different package name with MicroG.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links directly","description":"Adds an option to skip over redirection URLs in external links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Open links externally","description":"Adds an option to always open links in your browser instead of in the in-app-browser.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Overlay buttons","description":"Adds an option to display overlay buttons in the video player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"OutlineIcon","default":true,"values":null,"title":"Outline icons","description":"Apply the outline icon","required":true},{"key":"BottomMargin","default":"0.0dip","values":{"Wider":"6.0dip","Default":"0.0dip"},"title":"Bottom margin","description":"Apply bottom margin to Overlay buttons and Timestamp","required":false}]},{"name":"Premium icon","description":"Unlocks premium app icons.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Quick actions components","description":"Adds options to hide and customize components below the seekbar in fullscreen.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remember playback speed","description":"Adds an option to remember the last playback speed selected.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remember repeat state","description":"Adds an option to remember the state of the repeat toggle.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remember shuffle state","description":"Adds an option to remember the state of the shuffle toggle.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remember video quality","description":"Adds an option to remember the last video quality selected.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove subreddit dialog","description":"Adds options to remove the NSFW community warning and notifications suggestion dialogs by dismissing them automatically.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Remove viewer discretion dialog","description":"Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Replace cast button","description":"Adds an option to replace the cast button in the player with the \"Open music\" button.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Replace dismiss queue","description":"Adds an option to replace \"Dismiss queue\" with \"Watch on YouTube\" in the flyout menu.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Adds an option to show the dislike count of songs using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Return YouTube Dislike","description":"Shows the dislike count of videos using the Return YouTube Dislike API.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Sanitize sharing links","description":"Adds an option to remove tracking query parameters from URLs when sharing links.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Settings","description":"Adds ReVanced Extended settings to YouTube Music.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Settings","description":"Adds ReVanced Extended settings to Reddit.","compatiblePackages":[{"name":"com.reddit.frontpage","versions":null}],"use":true,"requiresIntegrations":true,"options":[]},{"name":"Settings","description":"Applies mandatory patches to implement ReVanced Extended settings into the application.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":true,"options":[]},{"name":"Settings icons","description":"Adds icons to specific preferences in the settings.","compatiblePackages":[{"name":"com.google.android.youtube","versions":null}],"use":false,"requiresIntegrations":false,"options":[]},{"name":"Shorts overlay buttons","description":"Apply the new icons to the action buttons of the Shorts player.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"IconType","default":"Outline","values":{"Outline":"outline","OutlineCircle":"outlinecircle","TikTok":"tiktok"},"title":"Icon type of Shorts","description":"Apply different icons for Shorts action buttons.","required":false}]},{"name":"SponsorBlock","description":"Adds options to enable and configure SponsorBlock, which can skip undesired video segments such as non-music sections.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"SponsorBlock","description":"Integrates SponsorBlock which allows skipping video segments such as sponsored content.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"OutlineIcon","default":true,"values":null,"title":"Outline icons","description":"Apply the outline icon","required":true}]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube Music client version. This can remove the radio mode restriction in Canadian regions or disable real-time lyrics.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof app version","description":"Adds options to spoof the YouTube client version. This can be used to restore old UI elements and features.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof device dimensions","description":"Adds an option to spoof the device dimensions which unlocks higher video qualities if they aren\u0027t available on the device.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Spoof player parameters","description":"Adds options to spoof player parameters to prevent playback issues.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Swipe controls","description":"Adds options to enable and configure volume and brightness swipe controls.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Theme","description":"Change the app\u0027s theme to the values specified in options.json.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[{"key":"DarkThemeBackgroundColor","default":"#FF010101","values":{"Black":"#FF010101","Catppuccin (Mocha)":"#FF181825","Dark Pink":"#FF290025","Dark Blue":"#FF001029","Dark Green":"#FF002905","Dark Yellow":"#FF282900","Dark Orange":"#FF291800","Dark Red":"#FF290000"},"title":"Dark theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true},{"key":"AdvancedDarkThemeBackgroundColor","default":"#FF252A3A","values":{"Advanced Dark Color":"#FF252A3A"},"title":"Advanced dark theme color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true},{"key":"LightThemeBackgroundColor","default":"#FFFFFFFF","values":{"White":"#FFFFFFFF","Catppuccin (Latte)":"#FFE6E9EF","Light Pink":"#FFFCCFF3","Light Blue":"#FFD1E0FF","Light Green":"#FFCCFFCC","Light Yellow":"#FFFDFFCC","Light Orange":"#FFFFE6CC","Light Red":"#FFFFD6D6"},"title":"Light theme background color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":false},{"key":"AdvancedLightThemeBackgroundColor","default":"#FFF2F8FF","values":{"Advanced Light Color":"#FFF2F8FF"},"title":"Advanced light theme color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true},{"key":"SeekbarBackgroundColor","default":"#FFFF0000","values":{"Seekbar Color":"#FFFF0000"},"title":"Seekbar color","description":"Can be a hex color (#AARRGGBB) or a color resource reference.","required":true}]},{"name":"Translations","description":"Adds Crowdin translations for YouTube Music.","compatiblePackages":[{"name":"com.google.android.apps.youtube.music","versions":null}],"use":true,"requiresIntegrations":false,"options":[]},{"name":"Translations","description":"Add Crowdin translations for YouTube.","compatiblePackages":[{"name":"com.google.android.youtube","versions":["18.25.40","18.27.36","18.29.38","18.30.37","18.31.40","18.32.39","18.33.40","18.34.38","18.35.36","18.36.39","18.37.36","18.38.44","18.39.41","18.40.34","18.41.39","18.42.41","18.43.45","18.44.41","18.45.43","18.46.45","18.48.39","18.49.37","19.01.34","19.02.39","19.03.36","19.04.38","19.05.36","19.06.39","19.07.40","19.08.36","19.09.38","19.10.39","19.11.38"]}],"use":true,"requiresIntegrations":false,"options":[]}] diff --git a/search_for_missing_strings.py b/search_for_missing_strings.py new file mode 100644 index 000000000..a392e74d3 --- /dev/null +++ b/search_for_missing_strings.py @@ -0,0 +1,82 @@ +import os +import re +import sys + +# Define source file path +source_file = "src/main/resources/youtube/settings/host/values/strings.xml" + +# Define destination directory path +destination_directory = "src/main/resources/youtube/translations" + +# Function to extract strings from a file +def extract_strings(file_path): + with open(file_path, 'r', encoding='utf-8') as file: + content = file.read() + strings = re.findall(r'(.*?)', content, re.DOTALL) + return set(strings) + +# Extract strings from source file +source_strings = extract_strings(source_file) + +# Loop through destination folders +# If you want to search only one language folder add +"/your_lang" to destination_directory +# like this => for root, dirs, files in os.walk(destination_directory+"/ar"): +for root, dirs, files in os.walk(destination_directory): + if "strings.xml" in files: + # Get destination file path + destination_file = os.path.join(root, "strings.xml") + + # Get destination folder name (language code) + destination_folder = os.path.dirname(destination_file) + language_code = os.path.basename(destination_folder) + + # Output file path + output_file = os.path.join(destination_folder, "missing_strings.xml") + + # Check if source and destination files exist + if not os.path.isfile(source_file): + print(f"Error: {source_file} not found.") + exit(1) + + if not os.path.isfile(destination_file): + print(f"Error: {destination_file} not found.") + exit(1) + + # Extract strings from destination file + destination_strings = extract_strings(destination_file) + + # Find missing strings + missing_strings = [] + + for name, attributes, content in source_strings: + if name not in {name for name, _, _ in destination_strings}: + string_tag = f'{content}\n' + missing_strings.append(string_tag) + + # Sort missing strings by name attribute + missing_strings.sort(key=lambda x: re.search(r'name="([^"]*)"', x).group(1)) + + # Check if missing strings exist + if not missing_strings: + # Delete output file if exists + if os.path.isfile(output_file): + os.remove(output_file) + + print(f"No missing strings for {language_code}") + else: + # Save missing strings to output file + with open(output_file, 'w') as file: + for string_tag in missing_strings: + file.write(string_tag) + + num_missing = len(missing_strings) + print(f"{language_code} - {num_missing} missing strings.") + +# Prompt the user to press a key before closing the terminal window +input("\nPress Enter to exit...") +sys.exit(0) # Optional, but ensures proper termination of the script diff --git a/search_for_missing_strings.sh b/search_for_missing_strings.sh deleted file mode 100755 index bebd6d82d..000000000 --- a/search_for_missing_strings.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash - -# Define source file path -source_file="src/main/resources/youtube/settings/host/values/strings.xml" - -# Loop through destination folders -# Replace * with language folder name to check only one language -for destination_file in src/main/resources/youtube/translations/*/strings.xml; do - # Get destination folder name - destination_folder=$(dirname "$destination_file") - - # Extract language code from destination folder - language_code=$(basename "$destination_folder") - - # Output file path - output_file="$destination_folder/missing_strings.xml" - - # Check if source and destination files exist - if [ ! -f "$source_file" ]; then - echo "Error: $source_file not found." - exit 1 - fi - - if [ ! -f "$destination_file" ]; then - echo "Error: $destination_file not found." - exit 1 - fi - - # Extract strings from source file - source_strings=$(grep ' "$output_file" - - # echo "Missing strings saved to $output_file." - num_missing=$(echo -e "$missing_strings" | grep -c 'disableRollingNumberAnimations()Z - move-result v$freeRegister - if-nez v$freeRegister, :disable_animations - """, - ExternalLabel("disable_animations", getInstruction(blockEndIndex)) - ) - } - } ?: throw PatchException("This version is not supported. Please use YouTube 18.30.37 or later.") + addInstructionsWithLabels( + blockStartIndex, + """ + invoke-static {}, $GENERAL->disableRollingNumberAnimations()Z + move-result v$freeRegister + if-nez v$freeRegister, :disable_animations + """, + ExternalLabel("disable_animations", getInstruction(blockEndIndex)) + ) + } + } ?: RollingNumberTextViewAnimationUpdateFingerprint.exception + } else { + throw PatchException("This version is not supported. Please use YouTube 18.43.45 or later.") + } /** * Add settings diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/searchterm/SearchTermThumbnailPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/searchterm/SearchTermThumbnailPatch.kt index dd204c347..97e11e829 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/searchterm/SearchTermThumbnailPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/searchterm/SearchTermThumbnailPatch.kt @@ -57,7 +57,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/snackbar/HideSnackBarPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/snackbar/HideSnackBarPatch.kt index 21757e2c7..7df76cb6a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/snackbar/HideSnackBarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/snackbar/HideSnackBarPatch.kt @@ -50,7 +50,9 @@ import app.revanced.util.exception "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/songsearch/SongSearchPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/songsearch/SongSearchPatch.kt index 855b9371f..aa7e2b948 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/songsearch/SongSearchPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/songsearch/SongSearchPatch.kt @@ -45,7 +45,9 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] @@ -79,5 +81,6 @@ object SongSearchPatch : BytecodePatch( ) SettingsPatch.updatePatchStatus("Enable song search") + } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/startpage/ChangeStartPagePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/startpage/ChangeStartPagePatch.kt index c9aacd1bf..4894aec28 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/startpage/ChangeStartPagePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/startpage/ChangeStartPagePatch.kt @@ -50,7 +50,9 @@ import app.revanced.util.exception "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/suggestions/SuggestionsShelfPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/suggestions/SuggestionsShelfPatch.kt index f64d087fc..8bc010a67 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/suggestions/SuggestionsShelfPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/suggestions/SuggestionsShelfPatch.kt @@ -58,7 +58,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/tabletminiplayer/TabletMiniPlayerPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/tabletminiplayer/TabletMiniPlayerPatch.kt index bd2bff56c..fa668c489 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/tabletminiplayer/TabletMiniPlayerPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/tabletminiplayer/TabletMiniPlayerPatch.kt @@ -61,7 +61,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/toolbar/ToolBarButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/toolbar/ToolBarButtonPatch.kt index 406c5e185..cadb47973 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/toolbar/ToolBarButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/toolbar/ToolBarButtonPatch.kt @@ -49,7 +49,9 @@ import app.revanced.patches.youtube.utils.toolbar.ToolBarHookPatch "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/trendingsearches/TrendingSearchesPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/trendingsearches/TrendingSearchesPatch.kt index 0fe493ea7..dc1b1d4aa 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/trendingsearches/TrendingSearchesPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/trendingsearches/TrendingSearchesPatch.kt @@ -59,7 +59,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/widesearchbar/WideSearchBarPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/widesearchbar/WideSearchBarPatch.kt index 6d3433bfe..96bfc723d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/widesearchbar/WideSearchBarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/widesearchbar/WideSearchBarPatch.kt @@ -58,7 +58,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/animated/AnimatedButtonBackgroundPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/animated/AnimatedButtonBackgroundPatch.kt index f382d37c5..58f0d3362 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/animated/AnimatedButtonBackgroundPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/animated/AnimatedButtonBackgroundPatch.kt @@ -10,7 +10,7 @@ import app.revanced.util.copyResources @Patch( name = "Hide animated button background", - description = "Hides the background of the pause and play animated buttons in the Shorts player.", + description = "Force to hide the background of the pause and play animated buttons in the Shorts player.", dependencies = [SettingsPatch::class], compatiblePackages = [ CompatiblePackage( @@ -46,7 +46,9 @@ import app.revanced.util.copyResources "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ], diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/animated/AnimatedLikePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/animated/AnimatedLikePatch.kt index 62a592f48..34529e3dd 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/animated/AnimatedLikePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/animated/AnimatedLikePatch.kt @@ -10,7 +10,7 @@ import app.revanced.util.copyResources @Patch( name = "Hide double tap to like animations", - description = "Hides the like animations when double tap the screen in the Shorts player.", + description = "Force to hide the like animations when double tap the screen in the Shorts player.", dependencies = [SettingsPatch::class], compatiblePackages = [ CompatiblePackage( @@ -46,7 +46,9 @@ import app.revanced.util.copyResources "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ], diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/branding/icon/CustomBrandingIconPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/branding/icon/CustomBrandingIconPatch.kt index c08669bc3..9bc172048 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/branding/icon/CustomBrandingIconPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/branding/icon/CustomBrandingIconPatch.kt @@ -52,7 +52,9 @@ import java.nio.file.Files "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ], diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/branding/name/CustomBrandingNamePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/branding/name/CustomBrandingNamePatch.kt index 5d29da652..0607afcfe 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/branding/name/CustomBrandingNamePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/branding/name/CustomBrandingNamePatch.kt @@ -48,7 +48,9 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ], diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/doubletapbackground/DoubleTapOverlayBackgroundPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/doubletapbackground/DoubleTapOverlayBackgroundPatch.kt index d59327341..b5b11396a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/doubletapbackground/DoubleTapOverlayBackgroundPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/doubletapbackground/DoubleTapOverlayBackgroundPatch.kt @@ -44,11 +44,12 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) - ], - use = true + ] ) @Suppress("unused") object DoubleTapOverlayBackgroundPatch : AbstractOverlayBackgroundPatch( diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/doubletaplength/DoubleTapLengthPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/doubletaplength/DoubleTapLengthPatch.kt index d26d548a2..83ba08835 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/doubletaplength/DoubleTapLengthPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/doubletaplength/DoubleTapLengthPatch.kt @@ -49,7 +49,9 @@ import app.revanced.util.copyResources "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/header/CustomBrandingHeadingPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/header/CustomBrandingHeadingPatch.kt index 250b8bd97..cce9b5d60 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/header/CustomBrandingHeadingPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/header/CustomBrandingHeadingPatch.kt @@ -50,7 +50,9 @@ import java.io.File "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ], diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/materialyou/MaterialYouPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/materialyou/MaterialYouPatch.kt index 36864e158..44bdf2a1b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/materialyou/MaterialYouPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/materialyou/MaterialYouPatch.kt @@ -53,7 +53,9 @@ import app.revanced.util.copyXmlNode "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ], diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/pipnotification/PiPNotificationPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/pipnotification/PiPNotificationPatch.kt index 38c13bf05..6d27b868b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/pipnotification/PiPNotificationPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/pipnotification/PiPNotificationPatch.kt @@ -54,7 +54,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/splashanimation/AddSplashAnimationPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/splashanimation/AddSplashAnimationPatch.kt index 2cda5aa38..ca2ad443d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/splashanimation/AddSplashAnimationPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/splashanimation/AddSplashAnimationPatch.kt @@ -46,11 +46,12 @@ import kotlin.io.path.exists "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) - ], - use = true + ] ) @Suppress("unused") object AddSplashAnimationPatch : ResourcePatch() { diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemePatch.kt index 3de1f2515..7e07b8165 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemePatch.kt @@ -52,7 +52,9 @@ import org.w3c.dom.Element "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/tooltip/TooltipContentViewPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/tooltip/TooltipContentViewPatch.kt index 39bcec45b..39f1e48ab 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/tooltip/TooltipContentViewPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/tooltip/TooltipContentViewPatch.kt @@ -51,7 +51,9 @@ import app.revanced.util.exception "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/voicesearch/VoiceSearchButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/voicesearch/VoiceSearchButtonPatch.kt index 20339d196..6b865fd5d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/voicesearch/VoiceSearchButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/voicesearch/VoiceSearchButtonPatch.kt @@ -8,7 +8,7 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch @Patch( name = "Hide voice search button", - description = "Hide voice search button in search bar.", + description = "Force to hide voice search button in search bar.", dependencies = [SettingsPatch::class], compatiblePackages = [ CompatiblePackage( @@ -44,7 +44,9 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ], diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/AmbientModeSwitchPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/AmbientModeSwitchPatch.kt index 0862ddb66..f970a484e 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/AmbientModeSwitchPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/AmbientModeSwitchPatch.kt @@ -59,7 +59,9 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeOneFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeOneFingerprint.kt index 9bcb6dc21..1d9a8ac8d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeOneFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeOneFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.ambientmode.fingerprints /** #C# Add START */ +package app.revanced.patches.youtube.misc.ambientmode.fingerprints import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.MethodFingerprint @@ -40,4 +40,4 @@ object PowerSaveModeOneFingerprint : MethodFingerprint( } count == 1 } -) /** #C# Add END */ \ No newline at end of file +) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeTwoFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeTwoFingerprint.kt index 578d227f4..041b5f4bc 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeTwoFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeTwoFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.ambientmode.fingerprints /** #C# Add START */ +package app.revanced.patches.youtube.misc.ambientmode.fingerprints import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.MethodFingerprint @@ -41,4 +41,4 @@ object PowerSaveModeTwoFingerprint : MethodFingerprint( } count == 1 } -) /** #C# Add END */ \ No newline at end of file +) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/codec/audio/ForceOpusCodecPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/codec/audio/ForceOpusCodecPatch.kt index 413ab5149..5b60114f9 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/codec/audio/ForceOpusCodecPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/codec/audio/ForceOpusCodecPatch.kt @@ -45,7 +45,9 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/codec/video/ForceVideoCodecPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/codec/video/ForceVideoCodecPatch.kt index 82640b5a6..a5fd48ce3 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/codec/video/ForceVideoCodecPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/codec/video/ForceVideoCodecPatch.kt @@ -60,7 +60,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/debugging/DebuggingPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/debugging/DebuggingPatch.kt index 83c3ecae6..e04ca7cb5 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/debugging/DebuggingPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/debugging/DebuggingPatch.kt @@ -44,11 +44,13 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ], - use = true + use = false ) @Suppress("unused") object DebuggingPatch : ResourcePatch() { diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/ExternalBrowserPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/ExternalBrowserPatch.kt index 35ab1a74c..b73a6d553 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/ExternalBrowserPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/ExternalBrowserPatch.kt @@ -53,7 +53,9 @@ import com.android.tools.smali.dexlib2.iface.reference.StringReference "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/language/LanguageSelectorPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/language/LanguageSelectorPatch.kt index 253397b54..58a5ffdbe 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/language/LanguageSelectorPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/language/LanguageSelectorPatch.kt @@ -51,7 +51,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/layoutswitch/LayoutSwitchPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/layoutswitch/LayoutSwitchPatch.kt index e7042ed1c..1c5076af5 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/layoutswitch/LayoutSwitchPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/layoutswitch/LayoutSwitchPatch.kt @@ -52,7 +52,9 @@ import app.revanced.util.exception "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/MinimizedPlaybackPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/MinimizedPlaybackPatch.kt index 8b9935c68..63754797f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/MinimizedPlaybackPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/MinimizedPlaybackPatch.kt @@ -61,7 +61,9 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/OpenLinksDirectlyPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/OpenLinksDirectlyPatch.kt index d07241077..e0a5f3126 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/OpenLinksDirectlyPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/OpenLinksDirectlyPatch.kt @@ -53,7 +53,9 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/quic/QUICProtocolPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/quic/QUICProtocolPatch.kt index fcb6f9aa0..e3033e726 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/quic/QUICProtocolPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/quic/QUICProtocolPatch.kt @@ -49,7 +49,9 @@ import app.revanced.util.exception "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/splashanimation/NewSplashAnimationPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/splashanimation/NewSplashAnimationPatch.kt index c69549c6f..61ac5e87d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/splashanimation/NewSplashAnimationPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/splashanimation/NewSplashAnimationPatch.kt @@ -63,7 +63,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/spoofappversion/SpoofAppVersionPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/spoofappversion/SpoofAppVersionPatch.kt index 25c501def..748188259 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/spoofappversion/SpoofAppVersionPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/spoofappversion/SpoofAppVersionPatch.kt @@ -50,7 +50,9 @@ import org.w3c.dom.Element "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/spoofdimensions/SpoofDeviceDimensionsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/spoofdimensions/SpoofDeviceDimensionsPatch.kt index 48745e077..c4198ac96 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/spoofdimensions/SpoofDeviceDimensionsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/spoofdimensions/SpoofDeviceDimensionsPatch.kt @@ -49,7 +49,9 @@ import com.android.tools.smali.dexlib2.util.MethodUtil "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/tracking/SanitizeUrlQueryPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/tracking/SanitizeUrlQueryPatch.kt index bbd7bff02..cde44e9d3 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/tracking/SanitizeUrlQueryPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/tracking/SanitizeUrlQueryPatch.kt @@ -54,7 +54,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/translations/TranslationsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/translations/TranslationsPatch.kt index 64194225b..140abe4fc 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/translations/TranslationsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/translations/TranslationsPatch.kt @@ -44,7 +44,9 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/updatescreen/UpdateScreenPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/updatescreen/UpdateScreenPatch.kt index 78ead0a61..cdaff0543 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/updatescreen/UpdateScreenPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/updatescreen/UpdateScreenPatch.kt @@ -54,7 +54,9 @@ import com.android.tools.smali.dexlib2.util.MethodUtil "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/navigation/label/NavigationLabelPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/navigation/label/NavigationLabelPatch.kt index 7264b8758..f8a4737ba 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/navigation/label/NavigationLabelPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/navigation/label/NavigationLabelPatch.kt @@ -51,7 +51,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/navigation/navigationbuttons/NavigationButtonsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/navigation/navigationbuttons/NavigationButtonsPatch.kt index 2f9a47f84..cdadfa99c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/navigation/navigationbuttons/NavigationButtonsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/navigation/navigationbuttons/NavigationButtonsPatch.kt @@ -65,7 +65,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] @@ -102,7 +104,7 @@ object NavigationButtonsPatch : BytecodePatch( val buttonViewResult = this[1] val enumHookInsertIndex = enumScanResult.startIndex + 2 - val buttonHookInsertIndex = buttonViewResult.endIndex + val buttonHookInsertIndex = buttonViewResult.endIndex - 1 mapOf( BUTTON_HOOK to buttonHookInsertIndex, diff --git a/src/main/kotlin/app/revanced/patches/youtube/navigation/navigationbuttons/fingerprints/PivotBarShortsButtonViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/navigation/navigationbuttons/fingerprints/PivotBarShortsButtonViewFingerprint.kt index 51acdfc07..8928deef7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/navigation/navigationbuttons/fingerprints/PivotBarShortsButtonViewFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/navigation/navigationbuttons/fingerprints/PivotBarShortsButtonViewFingerprint.kt @@ -7,6 +7,7 @@ object PivotBarShortsButtonViewFingerprint : MethodFingerprint( opcodes = listOf( Opcode.INVOKE_VIRTUAL_RANGE, Opcode.MOVE_RESULT_OBJECT, // target reference - Opcode.GOTO, + null, // Opcode.GOTO_16 or Opcode.GOTO + Opcode.IF_NE ) ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/navigation/tabletnavbar/TabletNavigationBarPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/navigation/tabletnavbar/TabletNavigationBarPatch.kt index ca42050fe..aed975a4b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/navigation/tabletnavbar/TabletNavigationBarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/navigation/tabletnavbar/TabletNavigationBarPatch.kt @@ -52,7 +52,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/overlaybutton/download/hook/fingerprints/PlaylistOfflineDownloadOnClickFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/overlaybutton/download/hook/fingerprints/PlaylistOfflineDownloadOnClickFingerprint.kt index d67d680fd..cd56d2067 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/overlaybutton/download/hook/fingerprints/PlaylistOfflineDownloadOnClickFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/overlaybutton/download/hook/fingerprints/PlaylistOfflineDownloadOnClickFingerprint.kt @@ -14,7 +14,7 @@ object PlaylistOfflineDownloadOnClickFingerprint : MethodFingerprint( Opcode.INVOKE_STATIC, Opcode.MOVE_RESULT, Opcode.IF_EQZ, - null, // Opcode.RETURN_VOID, Opcode.GOTO + null, // Opcode.RETURN_VOID or Opcode.GOTO Opcode.IGET_OBJECT ), customFingerprint = { methodDef, classDef -> diff --git a/src/main/kotlin/app/revanced/patches/youtube/overlaybutton/general/OverlayButtonsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/overlaybutton/general/OverlayButtonsPatch.kt index 94603b8e8..704c02a3b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/overlaybutton/general/OverlayButtonsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/overlaybutton/general/OverlayButtonsPatch.kt @@ -74,7 +74,9 @@ import org.w3c.dom.Element "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/autoplaybutton/HideAutoplayButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/autoplaybutton/HideAutoplayButtonPatch.kt index b7ed0c3ca..4237b568f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/autoplaybutton/HideAutoplayButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/autoplaybutton/HideAutoplayButtonPatch.kt @@ -59,7 +59,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/captionsbutton/HideCaptionsButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/captionsbutton/HideCaptionsButtonPatch.kt index 36e8e5ae4..31addc86f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/captionsbutton/HideCaptionsButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/captionsbutton/HideCaptionsButtonPatch.kt @@ -59,7 +59,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/chapters/HideChapterInfoPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/chapters/HideChapterInfoPatch.kt index e4293b025..69510d99c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/chapters/HideChapterInfoPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/chapters/HideChapterInfoPatch.kt @@ -10,7 +10,7 @@ import org.w3c.dom.Element @Patch( name = "Hide player chapters", - description = "Forces to hide chapters in player bottom UI container.", + description = "Force to hide chapters in player bottom UI container.", dependencies = [SettingsPatch::class], compatiblePackages = [ CompatiblePackage( @@ -46,7 +46,9 @@ import org.w3c.dom.Element "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ], diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/collapsebutton/HideCollapseButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/collapsebutton/HideCollapseButtonPatch.kt index 4173e31c8..86dc3e69f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/collapsebutton/HideCollapseButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/collapsebutton/HideCollapseButtonPatch.kt @@ -49,7 +49,9 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/endscreencards/HideEndScreenCardsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/endscreencards/HideEndScreenCardsPatch.kt index 15073166c..8ba9835e7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/endscreencards/HideEndScreenCardsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/endscreencards/HideEndScreenCardsPatch.kt @@ -57,7 +57,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/filmstripoverlay/HideFilmstripOverlayPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/filmstripoverlay/HideFilmstripOverlayPatch.kt index c40858a9f..bfcf2ba9b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/filmstripoverlay/HideFilmstripOverlayPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/filmstripoverlay/HideFilmstripOverlayPatch.kt @@ -71,7 +71,9 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/fullscreenbutton/HideFullscreenButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/fullscreenbutton/HideFullscreenButtonPatch.kt index e12d9a077..bc6f55f3a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/fullscreenbutton/HideFullscreenButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/fullscreenbutton/HideFullscreenButtonPatch.kt @@ -46,7 +46,9 @@ import org.w3c.dom.Element "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ], diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/hapticfeedback/HapticFeedBackPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/hapticfeedback/HapticFeedBackPatch.kt index 3a18a89ae..44b68c964 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/hapticfeedback/HapticFeedBackPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/hapticfeedback/HapticFeedBackPatch.kt @@ -58,7 +58,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/infocards/HideInfoCardsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/infocards/HideInfoCardsPatch.kt index fde16811c..efac727d7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/infocards/HideInfoCardsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/infocards/HideInfoCardsPatch.kt @@ -55,7 +55,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/musicbutton/HideMusicButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/musicbutton/HideMusicButtonPatch.kt index 9e036f5a4..a6675db0a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/musicbutton/HideMusicButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/musicbutton/HideMusicButtonPatch.kt @@ -9,7 +9,6 @@ import app.revanced.patcher.patch.annotation.Patch import app.revanced.patcher.util.smali.ExternalLabel import app.revanced.patches.youtube.player.musicbutton.fingerprints.MusicAppDeeplinkButtonAlternativeFingerprint import app.revanced.patches.youtube.player.musicbutton.fingerprints.MusicAppDeeplinkButtonFingerprint -import app.revanced.patches.youtube.player.musicbutton.fingerprints.MusicAppDeeplinkButtonParentFingerprint import app.revanced.patches.youtube.utils.integrations.Constants.PLAYER import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch import app.revanced.patches.youtube.utils.settings.SettingsPatch @@ -56,32 +55,47 @@ import app.revanced.util.exception "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] ) @Suppress("unused") object HideMusicButtonPatch : BytecodePatch( - setOf(MusicAppDeeplinkButtonParentFingerprint) + setOf( + MusicAppDeeplinkButtonAlternativeFingerprint, + MusicAppDeeplinkButtonFingerprint + ) ) { override fun execute(context: BytecodeContext) { - MusicAppDeeplinkButtonParentFingerprint.result?.mutableClass?.let { mutableClass -> - MusicAppDeeplinkButtonFingerprint.also { it.resolve(context, mutableClass) }.result?.let { - it.mutableMethod.apply { - addInstructionsWithLabels( - 0, - """ - invoke-static {}, $PLAYER->hideMusicButton()Z - move-result v0 - if-nez v0, :hidden - """, - ExternalLabel("hidden", getInstruction(implementation!!.instructions.size - 1)) - ) - } - } ?: throw MusicAppDeeplinkButtonFingerprint.exception - } ?: throw MusicAppDeeplinkButtonParentFingerprint.exception + MusicAppDeeplinkButtonFingerprint.result?.let { + it.mutableMethod.apply { + addInstructionsWithLabels( + 0, + """ + invoke-static {}, $PLAYER->hideMusicButton()Z + move-result v0 + if-nez v0, :hidden + """, + ExternalLabel("hidden", getInstruction(implementation!!.instructions.size - 1)) + ) + } + } ?: MusicAppDeeplinkButtonAlternativeFingerprint.result?.let { + it.mutableMethod.apply { + addInstructionsWithLabels( + 0, + """ + invoke-static {}, $PLAYER->hideMusicButton()Z + move-result v0 + if-nez v0, :hidden + """, + ExternalLabel("hidden", getInstruction(implementation!!.instructions.size - 1)) + ) + } + } ?: throw MusicAppDeeplinkButtonFingerprint.exception /** * Add settings diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/musicbutton/fingerprints/MusicAppDeeplinkButtonFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/player/musicbutton/fingerprints/MusicAppDeeplinkButtonFingerprint.kt index d5c1b492e..372659b4d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/musicbutton/fingerprints/MusicAppDeeplinkButtonFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/musicbutton/fingerprints/MusicAppDeeplinkButtonFingerprint.kt @@ -2,11 +2,12 @@ package app.revanced.patches.youtube.player.musicbutton.fingerprints import app.revanced.patcher.extensions.or import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.MusicAppDeeplinkButtonView -import app.revanced.patcher.fingerprint.MethodFingerprint +import app.revanced.util.fingerprint.LiteralValueFingerprint import com.android.tools.smali.dexlib2.AccessFlags -object MusicAppDeeplinkButtonFingerprint : MethodFingerprint( +object MusicAppDeeplinkButtonFingerprint : LiteralValueFingerprint( returnType = "V", accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("Z", "Z"), + literalSupplier = { MusicAppDeeplinkButtonView } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/musicbutton/fingerprints/MusicAppDeeplinkButtonParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/player/musicbutton/fingerprints/MusicAppDeeplinkButtonParentFingerprint.kt deleted file mode 100644 index b593e74bb..000000000 --- a/src/main/kotlin/app/revanced/patches/youtube/player/musicbutton/fingerprints/MusicAppDeeplinkButtonParentFingerprint.kt +++ /dev/null @@ -1,12 +0,0 @@ -package app.revanced.patches.youtube.player.musicbutton.fingerprints - -import app.revanced.patcher.extensions.or -import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.MusicAppDeeplinkButtonView -import app.revanced.util.fingerprint.LiteralValueFingerprint -import com.android.tools.smali.dexlib2.AccessFlags - -object MusicAppDeeplinkButtonParentFingerprint : LiteralValueFingerprint( - returnType = "V", - accessFlags = AccessFlags.PROTECTED or AccessFlags.FINAL, - literalSupplier = { MusicAppDeeplinkButtonView } -) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/playerbuttonbg/HidePlayerButtonBackgroundPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/playerbuttonbg/HidePlayerButtonBackgroundPatch.kt index 7d50793b6..4fd681d6b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/playerbuttonbg/HidePlayerButtonBackgroundPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/playerbuttonbg/HidePlayerButtonBackgroundPatch.kt @@ -46,7 +46,9 @@ import org.w3c.dom.Element "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ], diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/playeroverlay/CustomPlayerOverlayOpacityPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/playeroverlay/CustomPlayerOverlayOpacityPatch.kt index 938436d24..ec5da2cea 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/playeroverlay/CustomPlayerOverlayOpacityPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/playeroverlay/CustomPlayerOverlayOpacityPatch.kt @@ -58,7 +58,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/previousnextbutton/HidePreviousNextButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/previousnextbutton/HidePreviousNextButtonPatch.kt index b8a6b380c..cc04647cf 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/previousnextbutton/HidePreviousNextButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/previousnextbutton/HidePreviousNextButtonPatch.kt @@ -50,7 +50,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction3rc "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/seekmessage/SeekMessagePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/seekmessage/SeekMessagePatch.kt index d638c7901..b6d853823 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/seekmessage/SeekMessagePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/seekmessage/SeekMessagePatch.kt @@ -53,7 +53,9 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/SpeedOverlayPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/SpeedOverlayPatch.kt index b7de53205..a1f6238f2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/SpeedOverlayPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/SpeedOverlayPatch.kt @@ -4,14 +4,17 @@ import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch +import app.revanced.patcher.patch.PatchException import app.revanced.patcher.patch.annotation.CompatiblePackage import app.revanced.patcher.patch.annotation.Patch import app.revanced.patches.youtube.player.speedoverlay.fingerprints.RestoreSlideToSeekBehaviorFingerprint import app.revanced.patches.youtube.player.speedoverlay.fingerprints.SpeedOverlayFingerprint import app.revanced.patches.youtube.utils.integrations.Constants.PLAYER import app.revanced.patches.youtube.utils.settings.SettingsPatch +import app.revanced.util.doRecursively import app.revanced.util.exception import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction +import org.w3c.dom.Element @Patch( name = "Disable speed overlay", @@ -21,15 +24,6 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction CompatiblePackage( "com.google.android.youtube", [ - "18.25.40", - "18.27.36", - "18.29.38", - "18.30.37", - "18.31.40", - "18.32.39", - "18.33.40", - "18.34.38", - "18.35.36", "18.36.39", "18.37.36", "18.38.44", @@ -51,7 +45,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] @@ -65,24 +61,43 @@ object SpeedOverlayPatch : BytecodePatch( ) { override fun execute(context: BytecodeContext) { - arrayOf( - RestoreSlideToSeekBehaviorFingerprint, - SpeedOverlayFingerprint - ).forEach { fingerprint -> - fingerprint.result?.let { - it.mutableMethod.apply { - val insertIndex = it.scanResult.patternScanResult!!.endIndex + 1 - val insertRegister = - getInstruction(insertIndex).registerA + if (SettingsPatch.upward1836) { + arrayOf( + RestoreSlideToSeekBehaviorFingerprint, + SpeedOverlayFingerprint + ).forEach { fingerprint -> + fingerprint.result?.let { + it.mutableMethod.apply { + val insertIndex = it.scanResult.patternScanResult!!.endIndex + 1 + val insertRegister = + getInstruction(insertIndex).registerA + + addInstructions( + insertIndex, """ + invoke-static {v$insertRegister}, $PLAYER->disableSpeedOverlay(Z)Z + move-result v$insertRegister + """ + ) + } + } ?: throw fingerprint.exception + } + } else { + throw PatchException("This version is not supported. Please use YouTube 18.36.39 or later.") + } + + if (SettingsPatch.upward1839) { + SettingsPatch.contexts.xmlEditor["res/layout/speedmaster_icon_edu_overlay.xml"].use { editor -> + editor.file.doRecursively { + arrayOf("height", "width").forEach replacement@{ replacement -> + if (it !is Element) return@replacement - addInstructions( - insertIndex, """ - invoke-static {v$insertRegister}, $PLAYER->disableSpeedOverlay(Z)Z - move-result v$insertRegister - """ - ) + if (it.attributes.getNamedItem("android:src")?.nodeValue?.endsWith("_24") == true) { + it.getAttributeNode("android:layout_$replacement") + ?.let { attribute -> attribute.textContent = "12.0dip" } + } + } } - } ?: throw fingerprint.exception + } } /** diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/suggestactions/SuggestedActionsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/suggestactions/SuggestedActionsPatch.kt index 15c714f4c..ff7f3039d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/suggestactions/SuggestedActionsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/suggestactions/SuggestedActionsPatch.kt @@ -58,7 +58,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/suggestedvideooverlay/SuggestedVideoOverlayPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/suggestedvideooverlay/SuggestedVideoOverlayPatch.kt index 94e65f8cb..d37d4fd91 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/suggestedvideooverlay/SuggestedVideoOverlayPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/suggestedvideooverlay/SuggestedVideoOverlayPatch.kt @@ -64,7 +64,9 @@ import com.android.tools.smali.dexlib2.Opcode "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/watermark/HideChannelWatermarkPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/watermark/HideChannelWatermarkPatch.kt index aad7884a8..efafd9999 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/watermark/HideChannelWatermarkPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/watermark/HideChannelWatermarkPatch.kt @@ -57,7 +57,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/seekbar/append/AppendTimeStampInformationPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/seekbar/append/AppendTimeStampInformationPatch.kt index fd8e196ca..1dbdf659d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/seekbar/append/AppendTimeStampInformationPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/seekbar/append/AppendTimeStampInformationPatch.kt @@ -66,7 +66,9 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/seekbar/color/SeekbarColorPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/seekbar/color/SeekbarColorPatch.kt index 0ac03d9e4..f370b6329 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/seekbar/color/SeekbarColorPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/seekbar/color/SeekbarColorPatch.kt @@ -67,7 +67,9 @@ import org.w3c.dom.Element "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/seekbar/hide/HideSeekbarPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/seekbar/hide/HideSeekbarPatch.kt index 0486fa23e..c8deabd17 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/seekbar/hide/HideSeekbarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/seekbar/hide/HideSeekbarPatch.kt @@ -55,7 +55,9 @@ import app.revanced.util.exception "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/seekbar/tapping/SeekbarTappingPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/seekbar/tapping/SeekbarTappingPatch.kt index 8bbab3c53..fb793de38 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/seekbar/tapping/SeekbarTappingPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/seekbar/tapping/SeekbarTappingPatch.kt @@ -56,7 +56,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction11n "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/seekbar/thumbnailpreview/NewThumbnailPreviewPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/seekbar/thumbnailpreview/NewThumbnailPreviewPatch.kt index 021d71b56..4d9e6e92f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/seekbar/thumbnailpreview/NewThumbnailPreviewPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/seekbar/thumbnailpreview/NewThumbnailPreviewPatch.kt @@ -50,7 +50,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/seekbar/timestamps/HideTimeStampPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/seekbar/timestamps/HideTimeStampPatch.kt index 6ab331f1a..56b77e932 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/seekbar/timestamps/HideTimeStampPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/seekbar/timestamps/HideTimeStampPatch.kt @@ -55,7 +55,9 @@ import app.revanced.util.exception "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/shorts/shortscomponent/ShortsComponentPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/shorts/shortscomponent/ShortsComponentPatch.kt index 2b957f330..681facd09 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/shorts/shortscomponent/ShortsComponentPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/shorts/shortscomponent/ShortsComponentPatch.kt @@ -87,7 +87,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/shorts/shortsoverlay/ShortsOverlayButtonsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/shorts/shortsoverlay/ShortsOverlayButtonsPatch.kt index cc3397c52..ba3088c11 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/shorts/shortsoverlay/ShortsOverlayButtonsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/shorts/shortsoverlay/ShortsOverlayButtonsPatch.kt @@ -48,7 +48,9 @@ import app.revanced.util.copyResources "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ], diff --git a/src/main/kotlin/app/revanced/patches/youtube/shorts/startupshortsreset/DisableShortsOnStartupPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/shorts/startupshortsreset/DisableShortsOnStartupPatch.kt index ef9ab64aa..cde05087b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/shorts/startupshortsreset/DisableShortsOnStartupPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/shorts/startupshortsreset/DisableShortsOnStartupPatch.kt @@ -57,7 +57,9 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/swipe/controls/SwipeControlsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/swipe/controls/SwipeControlsPatch.kt index f0034a315..38e468081 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/swipe/controls/SwipeControlsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/swipe/controls/SwipeControlsPatch.kt @@ -75,7 +75,9 @@ import com.android.tools.smali.dexlib2.immutable.ImmutableMethod "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] @@ -129,7 +131,7 @@ object SwipeControlsPatch : BytecodePatch( } } ?: throw FullScreenEngagementOverlayFingerprint.exception - if (SettingsPatch.upward1909) { + try { HDRBrightnessFingerprint.result?.let { it.mutableMethod.apply { addInstructionsWithLabels( @@ -141,7 +143,7 @@ object SwipeControlsPatch : BytecodePatch( """, ExternalLabel("default", getInstruction(0)) ) } - } + } ?: throw HDRBrightnessFingerprint.exception /** * Add settings @@ -151,8 +153,11 @@ object SwipeControlsPatch : BytecodePatch( "SETTINGS: SWIPE_EXPERIMENTAL_FLAGS" ) ) + } catch (e: Exception) { + println("WARNING: Disable auto HDR brightness is not supported in this version. Use YouTube 19.08.36 or earlier (${e.message})") } + /** * Add settings */ diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/fix/parameter/SpoofPlayerParameterPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/fix/parameter/SpoofPlayerParameterPatch.kt index ced482075..e4db85bce 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/fix/parameter/SpoofPlayerParameterPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/fix/parameter/SpoofPlayerParameterPatch.kt @@ -72,7 +72,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/microg/MicroGPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/microg/MicroGPatch.kt index ca363c577..0709cd19e 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/microg/MicroGPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/microg/MicroGPatch.kt @@ -57,7 +57,9 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/returnyoutubedislike/general/ReturnYouTubeDislikePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/returnyoutubedislike/general/ReturnYouTubeDislikePatch.kt index d60e01824..0d22b68ef 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/returnyoutubedislike/general/ReturnYouTubeDislikePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/returnyoutubedislike/general/ReturnYouTubeDislikePatch.kt @@ -74,7 +74,9 @@ import com.android.tools.smali.dexlib2.iface.reference.FieldReference "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/settings/SettingsAddIconsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/settings/SettingsAddIconsPatch.kt index 1675b843b..5b2529935 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/settings/SettingsAddIconsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/settings/SettingsAddIconsPatch.kt @@ -17,7 +17,7 @@ import org.w3c.dom.NodeList description = "Adds icons to specific preferences in the settings.", dependencies = [SettingsPatch::class, SponsorBlockPatch::class, SwipeControlsPatch::class], compatiblePackages = [CompatiblePackage("com.google.android.youtube", [])], - use = true, + use = true ) @Suppress("unused") object SettingsAddIconsPatch : ResourcePatch() { diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/settings/SettingsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/settings/SettingsPatch.kt index 55f67c229..f472d654e 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/settings/SettingsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/settings/SettingsPatch.kt @@ -61,7 +61,9 @@ import java.util.concurrent.TimeUnit "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ], @@ -101,11 +103,11 @@ object SettingsPatch : AbstractSettingsResourcePatch( upward1828 = 232900000 <= playServicesVersion upward1831 = 233200000 <= playServicesVersion upward1834 = 233502000 <= playServicesVersion + upward1836 = 233700000 <= playServicesVersion upward1839 = 234002000 <= playServicesVersion upward1841 = 234200000 <= playServicesVersion upward1843 = 234400000 <= playServicesVersion upward1904 = 240502000 <= playServicesVersion - upward1909 = 241002000 > playServicesVersion break } @@ -135,26 +137,6 @@ object SettingsPatch : AbstractSettingsResourcePatch( context.copyResources("youtube/settings", resourceGroup) } - if (SettingsPatch.upward1843) { - arrayOf( - ResourceGroup( - "layout", - "speedmaster_icon_edu_overlay.xml" - ) - ).forEach { resourceGroup -> - context.copyResources("youtube/settings/speedmaster_icon/1843", resourceGroup) - } - if (SettingsPatch.upward1904) { - arrayOf( - ResourceGroup( - "layout", - "speedmaster_icon_edu_overlay.xml" - ) - ).forEach { resourceGroup -> - context.copyResources("youtube/settings/speedmaster_icon/1904", resourceGroup) - } - } - } /** * initialize ReVanced Extended Settings @@ -194,11 +176,11 @@ object SettingsPatch : AbstractSettingsResourcePatch( internal var upward1828: Boolean = false internal var upward1831: Boolean = false internal var upward1834: Boolean = false + internal var upward1836: Boolean = false internal var upward1839: Boolean = false internal var upward1841: Boolean = false internal var upward1843: Boolean = false internal var upward1904: Boolean = false - internal var upward1909: Boolean = false internal fun addPreference(settingArray: Array) { contexts.addPreference(settingArray) diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt index f1de75aa8..99f5f972a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt @@ -51,7 +51,9 @@ import app.revanced.util.copyXmlNode "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/CustomPlaybackSpeedPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/CustomPlaybackSpeedPatch.kt index 39e2cf054..ee3a4899f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/CustomPlaybackSpeedPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/CustomPlaybackSpeedPatch.kt @@ -53,7 +53,9 @@ import app.revanced.util.updatePatchStatus "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/hdr/DisableHdrVideoPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/hdr/DisableHdrVideoPatch.kt index 5bbc4893c..a65677383 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/hdr/DisableHdrVideoPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/hdr/DisableHdrVideoPatch.kt @@ -50,7 +50,9 @@ import app.revanced.util.exception "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/quality/VideoQualityPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/quality/VideoQualityPatch.kt index fc4dd3310..08383dc49 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/quality/VideoQualityPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/quality/VideoQualityPatch.kt @@ -64,7 +64,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/PlaybackSpeedPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/PlaybackSpeedPatch.kt index b7ec08337..a26870f3a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/PlaybackSpeedPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/PlaybackSpeedPatch.kt @@ -63,7 +63,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction "19.06.39", "19.07.40", "19.08.36", - "19.09.37" + "19.09.38", + "19.10.39", + "19.11.38" ] ) ] diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..8e5d409a4 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..9a83fdf59 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-hdpi/ic_launcher_release.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-hdpi/ic_launcher_release.png new file mode 100644 index 000000000..8f7ff25a1 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-hdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..a3945bc1e Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..16ae17465 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-mdpi/ic_launcher_release.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-mdpi/ic_launcher_release.png new file mode 100644 index 000000000..9fbf6ca92 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-mdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..f9fd08cf0 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..f502f1bfc Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-xhdpi/ic_launcher_release.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xhdpi/ic_launcher_release.png new file mode 100644 index 000000000..b9372f249 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..c5ffe6997 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..c4c79c94f Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxhdpi/ic_launcher_release.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxhdpi/ic_launcher_release.png new file mode 100644 index 000000000..1f0852d78 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..e5e7eea39 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..593c2d12c Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxxhdpi/ic_launcher_release.png b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxxhdpi/ic_launcher_release.png new file mode 100644 index 000000000..c72ec992e Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/launcher/mipmap-xxxhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/afn_blue/monochrome/drawable/ic_app_icons_themed_youtube_music.xml b/src/main/resources/music/branding/afn_blue/monochrome/drawable/ic_app_icons_themed_youtube_music.xml new file mode 100644 index 000000000..0b5a1c98c --- /dev/null +++ b/src/main/resources/music/branding/afn_blue/monochrome/drawable/ic_app_icons_themed_youtube_music.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-hdpi/action_bar_logo.png b/src/main/resources/music/branding/afn_blue/resource/drawable-hdpi/action_bar_logo.png new file mode 100644 index 000000000..5c4fb04e2 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-hdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-hdpi/action_bar_logo_release.png b/src/main/resources/music/branding/afn_blue/resource/drawable-hdpi/action_bar_logo_release.png new file mode 100644 index 000000000..f4a88d418 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-hdpi/action_bar_logo_release.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-hdpi/logo_music.png b/src/main/resources/music/branding/afn_blue/resource/drawable-hdpi/logo_music.png new file mode 100644 index 000000000..c7985512b Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-hdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-hdpi/record.png b/src/main/resources/music/branding/afn_blue/resource/drawable-hdpi/record.png new file mode 100644 index 000000000..aecd283f8 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-hdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-large-hdpi/record.png b/src/main/resources/music/branding/afn_blue/resource/drawable-large-hdpi/record.png new file mode 100644 index 000000000..7532ae435 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-large-hdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-large-mdpi/record.png b/src/main/resources/music/branding/afn_blue/resource/drawable-large-mdpi/record.png new file mode 100644 index 000000000..1e783ad8a Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-large-mdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-large-xhdpi/record.png b/src/main/resources/music/branding/afn_blue/resource/drawable-large-xhdpi/record.png new file mode 100644 index 000000000..5442cc495 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-large-xhdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-mdpi/action_bar_logo.png b/src/main/resources/music/branding/afn_blue/resource/drawable-mdpi/action_bar_logo.png new file mode 100644 index 000000000..f0667b5e0 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-mdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-mdpi/logo_music.png b/src/main/resources/music/branding/afn_blue/resource/drawable-mdpi/logo_music.png new file mode 100644 index 000000000..92f52a841 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-mdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-mdpi/record.png b/src/main/resources/music/branding/afn_blue/resource/drawable-mdpi/record.png new file mode 100644 index 000000000..f6880b431 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-mdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-xhdpi/action_bar_logo.png b/src/main/resources/music/branding/afn_blue/resource/drawable-xhdpi/action_bar_logo.png new file mode 100644 index 000000000..77c065696 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-xhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-xhdpi/logo_music.png b/src/main/resources/music/branding/afn_blue/resource/drawable-xhdpi/logo_music.png new file mode 100644 index 000000000..f7226d9a2 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-xhdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-xhdpi/record.png b/src/main/resources/music/branding/afn_blue/resource/drawable-xhdpi/record.png new file mode 100644 index 000000000..9c3360029 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-xhdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-xlarge-hdpi/record.png b/src/main/resources/music/branding/afn_blue/resource/drawable-xlarge-hdpi/record.png new file mode 100644 index 000000000..32e299191 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-xlarge-hdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-xlarge-mdpi/record.png b/src/main/resources/music/branding/afn_blue/resource/drawable-xlarge-mdpi/record.png new file mode 100644 index 000000000..9c3360029 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-xlarge-mdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-xxhdpi/action_bar_logo.png b/src/main/resources/music/branding/afn_blue/resource/drawable-xxhdpi/action_bar_logo.png new file mode 100644 index 000000000..6b6958a67 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-xxhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-xxhdpi/logo_music.png b/src/main/resources/music/branding/afn_blue/resource/drawable-xxhdpi/logo_music.png new file mode 100644 index 000000000..db804b2cf Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-xxhdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-xxhdpi/record.png b/src/main/resources/music/branding/afn_blue/resource/drawable-xxhdpi/record.png new file mode 100644 index 000000000..32e299191 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-xxhdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-xxxhdpi/action_bar_logo.png b/src/main/resources/music/branding/afn_blue/resource/drawable-xxxhdpi/action_bar_logo.png new file mode 100644 index 000000000..91f4d3895 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-xxxhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/afn_blue/resource/drawable-xxxhdpi/logo_music.png b/src/main/resources/music/branding/afn_blue/resource/drawable-xxxhdpi/logo_music.png new file mode 100644 index 000000000..73d72b9d8 Binary files /dev/null and b/src/main/resources/music/branding/afn_blue/resource/drawable-xxxhdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..8e5d409a4 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..ec15c01bc Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-hdpi/ic_launcher_release.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-hdpi/ic_launcher_release.png new file mode 100644 index 000000000..6f9765153 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-hdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..a3945bc1e Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..28aaf6b15 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-mdpi/ic_launcher_release.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-mdpi/ic_launcher_release.png new file mode 100644 index 000000000..ebf57c2c0 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-mdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..f9fd08cf0 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..78b0f8339 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-xhdpi/ic_launcher_release.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-xhdpi/ic_launcher_release.png new file mode 100644 index 000000000..2d6360f41 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-xhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..c5ffe6997 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..84d1d81cb Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-xxhdpi/ic_launcher_release.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-xxhdpi/ic_launcher_release.png new file mode 100644 index 000000000..365e18cdb Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-xxhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..e5e7eea39 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..09ae721f0 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/afn_red/launcher/mipmap-xxxhdpi/ic_launcher_release.png b/src/main/resources/music/branding/afn_red/launcher/mipmap-xxxhdpi/ic_launcher_release.png new file mode 100644 index 000000000..0894c72f3 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/launcher/mipmap-xxxhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/afn_red/monochrome/drawable/ic_app_icons_themed_youtube_music.xml b/src/main/resources/music/branding/afn_red/monochrome/drawable/ic_app_icons_themed_youtube_music.xml new file mode 100644 index 000000000..0b5a1c98c --- /dev/null +++ b/src/main/resources/music/branding/afn_red/monochrome/drawable/ic_app_icons_themed_youtube_music.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-hdpi/action_bar_logo.png b/src/main/resources/music/branding/afn_red/resource/drawable-hdpi/action_bar_logo.png new file mode 100644 index 000000000..a0e16ab45 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-hdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-hdpi/action_bar_logo_release.png b/src/main/resources/music/branding/afn_red/resource/drawable-hdpi/action_bar_logo_release.png new file mode 100644 index 000000000..7f79f7d43 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-hdpi/action_bar_logo_release.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-hdpi/logo_music.png b/src/main/resources/music/branding/afn_red/resource/drawable-hdpi/logo_music.png new file mode 100644 index 000000000..7907c64c6 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-hdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-hdpi/record.png b/src/main/resources/music/branding/afn_red/resource/drawable-hdpi/record.png new file mode 100644 index 000000000..b9de7c89c Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-hdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-large-hdpi/record.png b/src/main/resources/music/branding/afn_red/resource/drawable-large-hdpi/record.png new file mode 100644 index 000000000..5859963e7 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-large-hdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-large-mdpi/record.png b/src/main/resources/music/branding/afn_red/resource/drawable-large-mdpi/record.png new file mode 100644 index 000000000..61d466154 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-large-mdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-large-xhdpi/record.png b/src/main/resources/music/branding/afn_red/resource/drawable-large-xhdpi/record.png new file mode 100644 index 000000000..5b34f7983 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-large-xhdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-mdpi/action_bar_logo.png b/src/main/resources/music/branding/afn_red/resource/drawable-mdpi/action_bar_logo.png new file mode 100644 index 000000000..ee56c1c55 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-mdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-mdpi/logo_music.png b/src/main/resources/music/branding/afn_red/resource/drawable-mdpi/logo_music.png new file mode 100644 index 000000000..97d837917 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-mdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-mdpi/record.png b/src/main/resources/music/branding/afn_red/resource/drawable-mdpi/record.png new file mode 100644 index 000000000..03547727e Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-mdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-xhdpi/action_bar_logo.png b/src/main/resources/music/branding/afn_red/resource/drawable-xhdpi/action_bar_logo.png new file mode 100644 index 000000000..01b53c316 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-xhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-xhdpi/logo_music.png b/src/main/resources/music/branding/afn_red/resource/drawable-xhdpi/logo_music.png new file mode 100644 index 000000000..82fc6916a Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-xhdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-xhdpi/record.png b/src/main/resources/music/branding/afn_red/resource/drawable-xhdpi/record.png new file mode 100644 index 000000000..176c876cd Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-xhdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-xlarge-hdpi/record.png b/src/main/resources/music/branding/afn_red/resource/drawable-xlarge-hdpi/record.png new file mode 100644 index 000000000..dbb56cc2d Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-xlarge-hdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-xlarge-mdpi/record.png b/src/main/resources/music/branding/afn_red/resource/drawable-xlarge-mdpi/record.png new file mode 100644 index 000000000..176c876cd Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-xlarge-mdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-xxhdpi/action_bar_logo.png b/src/main/resources/music/branding/afn_red/resource/drawable-xxhdpi/action_bar_logo.png new file mode 100644 index 000000000..4571ff72e Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-xxhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-xxhdpi/logo_music.png b/src/main/resources/music/branding/afn_red/resource/drawable-xxhdpi/logo_music.png new file mode 100644 index 000000000..be1c30561 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-xxhdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-xxhdpi/record.png b/src/main/resources/music/branding/afn_red/resource/drawable-xxhdpi/record.png new file mode 100644 index 000000000..dbb56cc2d Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-xxhdpi/record.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-xxxhdpi/action_bar_logo.png b/src/main/resources/music/branding/afn_red/resource/drawable-xxxhdpi/action_bar_logo.png new file mode 100644 index 000000000..304d7a330 Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-xxxhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/afn_red/resource/drawable-xxxhdpi/logo_music.png b/src/main/resources/music/branding/afn_red/resource/drawable-xxxhdpi/logo_music.png new file mode 100644 index 000000000..fac6da3bc Binary files /dev/null and b/src/main/resources/music/branding/afn_red/resource/drawable-xxxhdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/mmt/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png index 995c181bd..129276322 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/mmt/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png index b1d397625..98e3d3150 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-hdpi/ic_launcher_release.png b/src/main/resources/music/branding/mmt/launcher/mipmap-hdpi/ic_launcher_release.png index dacf9a503..81bdcaee6 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-hdpi/ic_launcher_release.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-hdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/mmt/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png index 8466fd13a..8a6252836 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/mmt/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png index 73815c022..3588a8e09 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-mdpi/ic_launcher_release.png b/src/main/resources/music/branding/mmt/launcher/mipmap-mdpi/ic_launcher_release.png index 9e5a233d2..74b68e4bf 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-mdpi/ic_launcher_release.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-mdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/mmt/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png index 3f149b9ab..a95aff113 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/mmt/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png index dab0c17a8..d247f9328 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-xhdpi/ic_launcher_release.png b/src/main/resources/music/branding/mmt/launcher/mipmap-xhdpi/ic_launcher_release.png index 46271d05f..9715ed3ca 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-xhdpi/ic_launcher_release.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-xhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/mmt/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png index 4b09c4031..d6cec4cce 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/mmt/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png index 9d1d19a49..4ffc08fce 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-xxhdpi/ic_launcher_release.png b/src/main/resources/music/branding/mmt/launcher/mipmap-xxhdpi/ic_launcher_release.png index 607731eda..13b18fa70 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-xxhdpi/ic_launcher_release.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-xxhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/mmt/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png index 9a71df711..6ef5ac482 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/mmt/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png index 49a4e07a5..3409847cc 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/mmt/launcher/mipmap-xxxhdpi/ic_launcher_release.png b/src/main/resources/music/branding/mmt/launcher/mipmap-xxxhdpi/ic_launcher_release.png index 7fd682d7c..6d396b95e 100644 Binary files a/src/main/resources/music/branding/mmt/launcher/mipmap-xxxhdpi/ic_launcher_release.png and b/src/main/resources/music/branding/mmt/launcher/mipmap-xxxhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-hdpi/action_bar_logo.png b/src/main/resources/music/branding/mmt/resource/drawable-hdpi/action_bar_logo.png index c7b06e5a2..85197459c 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-hdpi/action_bar_logo.png and b/src/main/resources/music/branding/mmt/resource/drawable-hdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-hdpi/action_bar_logo_release.png b/src/main/resources/music/branding/mmt/resource/drawable-hdpi/action_bar_logo_release.png index 4d2bdcee4..4e53c8847 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-hdpi/action_bar_logo_release.png and b/src/main/resources/music/branding/mmt/resource/drawable-hdpi/action_bar_logo_release.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-hdpi/record.png b/src/main/resources/music/branding/mmt/resource/drawable-hdpi/record.png index 68e2e652f..9d8be2b8b 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-hdpi/record.png and b/src/main/resources/music/branding/mmt/resource/drawable-hdpi/record.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-large-hdpi/record.png b/src/main/resources/music/branding/mmt/resource/drawable-large-hdpi/record.png index ce08eebe4..c5cbfefed 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-large-hdpi/record.png and b/src/main/resources/music/branding/mmt/resource/drawable-large-hdpi/record.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-large-mdpi/record.png b/src/main/resources/music/branding/mmt/resource/drawable-large-mdpi/record.png index 73f640aad..38dc7fe19 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-large-mdpi/record.png and b/src/main/resources/music/branding/mmt/resource/drawable-large-mdpi/record.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-large-xhdpi/record.png b/src/main/resources/music/branding/mmt/resource/drawable-large-xhdpi/record.png index cbaab35d4..51d7dd4c9 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-large-xhdpi/record.png and b/src/main/resources/music/branding/mmt/resource/drawable-large-xhdpi/record.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-mdpi/action_bar_logo.png b/src/main/resources/music/branding/mmt/resource/drawable-mdpi/action_bar_logo.png index e64021f03..02ab0aa04 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-mdpi/action_bar_logo.png and b/src/main/resources/music/branding/mmt/resource/drawable-mdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-mdpi/record.png b/src/main/resources/music/branding/mmt/resource/drawable-mdpi/record.png index 59ddfc26b..59fca6df4 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-mdpi/record.png and b/src/main/resources/music/branding/mmt/resource/drawable-mdpi/record.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-xhdpi/action_bar_logo.png b/src/main/resources/music/branding/mmt/resource/drawable-xhdpi/action_bar_logo.png index 02a484379..ac4bc0dfe 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-xhdpi/action_bar_logo.png and b/src/main/resources/music/branding/mmt/resource/drawable-xhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-xhdpi/record.png b/src/main/resources/music/branding/mmt/resource/drawable-xhdpi/record.png index cdee28db5..a86ec5e2e 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-xhdpi/record.png and b/src/main/resources/music/branding/mmt/resource/drawable-xhdpi/record.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-xlarge-hdpi/record.png b/src/main/resources/music/branding/mmt/resource/drawable-xlarge-hdpi/record.png index 5297964bd..9d9c73b56 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-xlarge-hdpi/record.png and b/src/main/resources/music/branding/mmt/resource/drawable-xlarge-hdpi/record.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-xlarge-mdpi/record.png b/src/main/resources/music/branding/mmt/resource/drawable-xlarge-mdpi/record.png index 9e388a6ce..a86ec5e2e 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-xlarge-mdpi/record.png and b/src/main/resources/music/branding/mmt/resource/drawable-xlarge-mdpi/record.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-xxhdpi/action_bar_logo.png b/src/main/resources/music/branding/mmt/resource/drawable-xxhdpi/action_bar_logo.png index 167b7d83d..a0b9c6ad6 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-xxhdpi/action_bar_logo.png and b/src/main/resources/music/branding/mmt/resource/drawable-xxhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-xxhdpi/record.png b/src/main/resources/music/branding/mmt/resource/drawable-xxhdpi/record.png index fffb40d2e..9d9c73b56 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-xxhdpi/record.png and b/src/main/resources/music/branding/mmt/resource/drawable-xxhdpi/record.png differ diff --git a/src/main/resources/music/branding/mmt/resource/drawable-xxxhdpi/action_bar_logo.png b/src/main/resources/music/branding/mmt/resource/drawable-xxxhdpi/action_bar_logo.png index f20b6aa15..00806186a 100644 Binary files a/src/main/resources/music/branding/mmt/resource/drawable-xxxhdpi/action_bar_logo.png and b/src/main/resources/music/branding/mmt/resource/drawable-xxxhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png index a5e35c4aa..164cc2a2c 100644 Binary files a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png index 367e2d1a5..079092367 100644 Binary files a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png index 196398e3e..e2f8eea90 100644 Binary files a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png index becaa791c..76fa6f58a 100644 Binary files a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png and b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png index dfb79d7ad..8fcefab72 100644 Binary files a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png index 4418c8a54..86f74e27e 100644 Binary files a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png and b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png index ceec7611e..2b59a6403 100644 Binary files a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png index 0dd262880..674bc9308 100644 Binary files a/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png and b/src/main/resources/music/branding/revancify_blue/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_blue/resource/drawable-large-xhdpi/record.png b/src/main/resources/music/branding/revancify_blue/resource/drawable-large-xhdpi/record.png index ba6483b3c..2b9ad68f4 100644 Binary files a/src/main/resources/music/branding/revancify_blue/resource/drawable-large-xhdpi/record.png and b/src/main/resources/music/branding/revancify_blue/resource/drawable-large-xhdpi/record.png differ diff --git a/src/main/resources/music/branding/revancify_blue/resource/drawable-xlarge-hdpi/record.png b/src/main/resources/music/branding/revancify_blue/resource/drawable-xlarge-hdpi/record.png index 8b3b1ae48..0d50c1a22 100644 Binary files a/src/main/resources/music/branding/revancify_blue/resource/drawable-xlarge-hdpi/record.png and b/src/main/resources/music/branding/revancify_blue/resource/drawable-xlarge-hdpi/record.png differ diff --git a/src/main/resources/music/branding/revancify_blue/resource/drawable-xxhdpi/record.png b/src/main/resources/music/branding/revancify_blue/resource/drawable-xxhdpi/record.png index 8b3b1ae48..0d50c1a22 100644 Binary files a/src/main/resources/music/branding/revancify_blue/resource/drawable-xxhdpi/record.png and b/src/main/resources/music/branding/revancify_blue/resource/drawable-xxhdpi/record.png differ diff --git a/src/main/resources/music/branding/revancify_blue/resource/drawable-xxxhdpi/action_bar_logo.png b/src/main/resources/music/branding/revancify_blue/resource/drawable-xxxhdpi/action_bar_logo.png index 46a3d56b4..a5d235367 100644 Binary files a/src/main/resources/music/branding/revancify_blue/resource/drawable-xxxhdpi/action_bar_logo.png and b/src/main/resources/music/branding/revancify_blue/resource/drawable-xxxhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/revancify_red/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/revancify_red/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png index a5e35c4aa..164cc2a2c 100644 Binary files a/src/main/resources/music/branding/revancify_red/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/revancify_red/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_red/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/revancify_red/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png index 367e2d1a5..079092367 100644 Binary files a/src/main/resources/music/branding/revancify_red/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/revancify_red/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_red/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/revancify_red/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png index 196398e3e..e2f8eea90 100644 Binary files a/src/main/resources/music/branding/revancify_red/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/revancify_red/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_red/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/revancify_red/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png index 24e40d717..38ecc2753 100644 Binary files a/src/main/resources/music/branding/revancify_red/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png and b/src/main/resources/music/branding/revancify_red/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png index dfb79d7ad..8fcefab72 100644 Binary files a/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png index 87cc98cef..a8608f6ea 100644 Binary files a/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png and b/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png index ceec7611e..2b59a6403 100644 Binary files a/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png and b/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png index 7cffc6049..e78e1b7a7 100644 Binary files a/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png and b/src/main/resources/music/branding/revancify_red/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/revancify_red/resource/drawable-hdpi/action_bar_logo.png b/src/main/resources/music/branding/revancify_red/resource/drawable-hdpi/action_bar_logo.png index 93156b501..bd237d5c2 100644 Binary files a/src/main/resources/music/branding/revancify_red/resource/drawable-hdpi/action_bar_logo.png and b/src/main/resources/music/branding/revancify_red/resource/drawable-hdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/revancify_red/resource/drawable-hdpi/action_bar_logo_release.png b/src/main/resources/music/branding/revancify_red/resource/drawable-hdpi/action_bar_logo_release.png index 1882f6488..3d2280f47 100644 Binary files a/src/main/resources/music/branding/revancify_red/resource/drawable-hdpi/action_bar_logo_release.png and b/src/main/resources/music/branding/revancify_red/resource/drawable-hdpi/action_bar_logo_release.png differ diff --git a/src/main/resources/music/branding/revancify_red/resource/drawable-hdpi/record.png b/src/main/resources/music/branding/revancify_red/resource/drawable-hdpi/record.png index 0e69ebed5..f8c312d7e 100644 Binary files a/src/main/resources/music/branding/revancify_red/resource/drawable-hdpi/record.png and b/src/main/resources/music/branding/revancify_red/resource/drawable-hdpi/record.png differ diff --git a/src/main/resources/music/branding/revancify_red/resource/drawable-xhdpi/action_bar_logo.png b/src/main/resources/music/branding/revancify_red/resource/drawable-xhdpi/action_bar_logo.png index b5791c499..8b2a6347f 100644 Binary files a/src/main/resources/music/branding/revancify_red/resource/drawable-xhdpi/action_bar_logo.png and b/src/main/resources/music/branding/revancify_red/resource/drawable-xhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/revancify_red/resource/drawable-xhdpi/record.png b/src/main/resources/music/branding/revancify_red/resource/drawable-xhdpi/record.png index a6a1bba0b..9a74bd8ff 100644 Binary files a/src/main/resources/music/branding/revancify_red/resource/drawable-xhdpi/record.png and b/src/main/resources/music/branding/revancify_red/resource/drawable-xhdpi/record.png differ diff --git a/src/main/resources/music/branding/revancify_red/resource/drawable-xlarge-hdpi/record.png b/src/main/resources/music/branding/revancify_red/resource/drawable-xlarge-hdpi/record.png index 0c2c3d505..896be7dda 100644 Binary files a/src/main/resources/music/branding/revancify_red/resource/drawable-xlarge-hdpi/record.png and b/src/main/resources/music/branding/revancify_red/resource/drawable-xlarge-hdpi/record.png differ diff --git a/src/main/resources/music/branding/revancify_red/resource/drawable-xlarge-mdpi/record.png b/src/main/resources/music/branding/revancify_red/resource/drawable-xlarge-mdpi/record.png index a6a1bba0b..9a74bd8ff 100644 Binary files a/src/main/resources/music/branding/revancify_red/resource/drawable-xlarge-mdpi/record.png and b/src/main/resources/music/branding/revancify_red/resource/drawable-xlarge-mdpi/record.png differ diff --git a/src/main/resources/music/branding/revancify_red/resource/drawable-xxhdpi/action_bar_logo.png b/src/main/resources/music/branding/revancify_red/resource/drawable-xxhdpi/action_bar_logo.png index 19a13cc23..14de78d18 100644 Binary files a/src/main/resources/music/branding/revancify_red/resource/drawable-xxhdpi/action_bar_logo.png and b/src/main/resources/music/branding/revancify_red/resource/drawable-xxhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/revancify_red/resource/drawable-xxhdpi/record.png b/src/main/resources/music/branding/revancify_red/resource/drawable-xxhdpi/record.png index 0c2c3d505..896be7dda 100644 Binary files a/src/main/resources/music/branding/revancify_red/resource/drawable-xxhdpi/record.png and b/src/main/resources/music/branding/revancify_red/resource/drawable-xxhdpi/record.png differ diff --git a/src/main/resources/music/branding/revancify_red/resource/drawable-xxxhdpi/action_bar_logo.png b/src/main/resources/music/branding/revancify_red/resource/drawable-xxxhdpi/action_bar_logo.png index a4735c0e9..fd204978f 100644 Binary files a/src/main/resources/music/branding/revancify_red/resource/drawable-xxxhdpi/action_bar_logo.png and b/src/main/resources/music/branding/revancify_red/resource/drawable-xxxhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..6fff80e87 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..b533be681 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-hdpi/ic_launcher_release.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-hdpi/ic_launcher_release.png new file mode 100644 index 000000000..88db9829f Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-hdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..f15c9e2c8 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..455632775 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-mdpi/ic_launcher_release.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-mdpi/ic_launcher_release.png new file mode 100644 index 000000000..1ed5865ac Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-mdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..6575bf407 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..3d312dc7d Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-xhdpi/ic_launcher_release.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xhdpi/ic_launcher_release.png new file mode 100644 index 000000000..b032738d8 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..a571df477 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..26256d8b3 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxhdpi/ic_launcher_release.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxhdpi/ic_launcher_release.png new file mode 100644 index 000000000..38eb9ba7a Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..06f1d9566 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..4a80fb6ab Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxxhdpi/ic_launcher_release.png b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxxhdpi/ic_launcher_release.png new file mode 100644 index 000000000..0bc859dab Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/launcher/mipmap-xxxhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/vanced_black/monochrome/drawable/ic_app_icons_themed_youtube_music.xml b/src/main/resources/music/branding/vanced_black/monochrome/drawable/ic_app_icons_themed_youtube_music.xml new file mode 100644 index 000000000..0b5a1c98c --- /dev/null +++ b/src/main/resources/music/branding/vanced_black/monochrome/drawable/ic_app_icons_themed_youtube_music.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-hdpi/action_bar_logo.png b/src/main/resources/music/branding/vanced_black/resource/drawable-hdpi/action_bar_logo.png new file mode 100644 index 000000000..657a858cd Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-hdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-hdpi/action_bar_logo_release.png b/src/main/resources/music/branding/vanced_black/resource/drawable-hdpi/action_bar_logo_release.png new file mode 100644 index 000000000..38d65399b Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-hdpi/action_bar_logo_release.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-hdpi/logo_music.png b/src/main/resources/music/branding/vanced_black/resource/drawable-hdpi/logo_music.png new file mode 100644 index 000000000..0de23b161 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-hdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-hdpi/record.png b/src/main/resources/music/branding/vanced_black/resource/drawable-hdpi/record.png new file mode 100644 index 000000000..7b4de9d70 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-hdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-large-hdpi/record.png b/src/main/resources/music/branding/vanced_black/resource/drawable-large-hdpi/record.png new file mode 100644 index 000000000..e6d15f80a Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-large-hdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-large-mdpi/record.png b/src/main/resources/music/branding/vanced_black/resource/drawable-large-mdpi/record.png new file mode 100644 index 000000000..d62b02d0d Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-large-mdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-large-xhdpi/record.png b/src/main/resources/music/branding/vanced_black/resource/drawable-large-xhdpi/record.png new file mode 100644 index 000000000..bf67a7a83 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-large-xhdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-mdpi/action_bar_logo.png b/src/main/resources/music/branding/vanced_black/resource/drawable-mdpi/action_bar_logo.png new file mode 100644 index 000000000..45fe25619 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-mdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-mdpi/logo_music.png b/src/main/resources/music/branding/vanced_black/resource/drawable-mdpi/logo_music.png new file mode 100644 index 000000000..19eddfc64 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-mdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-mdpi/record.png b/src/main/resources/music/branding/vanced_black/resource/drawable-mdpi/record.png new file mode 100644 index 000000000..732e20e6f Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-mdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-xhdpi/action_bar_logo.png b/src/main/resources/music/branding/vanced_black/resource/drawable-xhdpi/action_bar_logo.png new file mode 100644 index 000000000..2ff6a86b8 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-xhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-xhdpi/logo_music.png b/src/main/resources/music/branding/vanced_black/resource/drawable-xhdpi/logo_music.png new file mode 100644 index 000000000..179937d19 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-xhdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-xhdpi/record.png b/src/main/resources/music/branding/vanced_black/resource/drawable-xhdpi/record.png new file mode 100644 index 000000000..3716eff80 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-xhdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-xlarge-hdpi/record.png b/src/main/resources/music/branding/vanced_black/resource/drawable-xlarge-hdpi/record.png new file mode 100644 index 000000000..322b74ae3 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-xlarge-hdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-xlarge-mdpi/record.png b/src/main/resources/music/branding/vanced_black/resource/drawable-xlarge-mdpi/record.png new file mode 100644 index 000000000..3716eff80 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-xlarge-mdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-xxhdpi/action_bar_logo.png b/src/main/resources/music/branding/vanced_black/resource/drawable-xxhdpi/action_bar_logo.png new file mode 100644 index 000000000..ca3180d8a Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-xxhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-xxhdpi/logo_music.png b/src/main/resources/music/branding/vanced_black/resource/drawable-xxhdpi/logo_music.png new file mode 100644 index 000000000..4b45380a9 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-xxhdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-xxhdpi/record.png b/src/main/resources/music/branding/vanced_black/resource/drawable-xxhdpi/record.png new file mode 100644 index 000000000..322b74ae3 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-xxhdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-xxxhdpi/action_bar_logo.png b/src/main/resources/music/branding/vanced_black/resource/drawable-xxxhdpi/action_bar_logo.png new file mode 100644 index 000000000..de71dddf4 Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-xxxhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/vanced_black/resource/drawable-xxxhdpi/logo_music.png b/src/main/resources/music/branding/vanced_black/resource/drawable-xxxhdpi/logo_music.png new file mode 100644 index 000000000..e9fd5233b Binary files /dev/null and b/src/main/resources/music/branding/vanced_black/resource/drawable-xxxhdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..cb44ccb73 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..edd8282f2 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-hdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-hdpi/ic_launcher_release.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-hdpi/ic_launcher_release.png new file mode 100644 index 000000000..6426879cf Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-hdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..f71a1f051 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..5b5dac06e Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-mdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-mdpi/ic_launcher_release.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-mdpi/ic_launcher_release.png new file mode 100644 index 000000000..65ac4ea99 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-mdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..03b69ce6e Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..e920928fd Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-xhdpi/ic_launcher_release.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xhdpi/ic_launcher_release.png new file mode 100644 index 000000000..bc990f62e Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..2e5d11ddc Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..0a541e8e3 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxhdpi/ic_launcher_release.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxhdpi/ic_launcher_release.png new file mode 100644 index 000000000..8483073bc Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png new file mode 100644 index 000000000..4a4d159c4 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_background_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png new file mode 100644 index 000000000..a637f4752 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxxhdpi/adaptiveproduct_youtube_music_foreground_color_108.png differ diff --git a/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxxhdpi/ic_launcher_release.png b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxxhdpi/ic_launcher_release.png new file mode 100644 index 000000000..97830820c Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/launcher/mipmap-xxxhdpi/ic_launcher_release.png differ diff --git a/src/main/resources/music/branding/vanced_light/monochrome/drawable/ic_app_icons_themed_youtube_music.xml b/src/main/resources/music/branding/vanced_light/monochrome/drawable/ic_app_icons_themed_youtube_music.xml new file mode 100644 index 000000000..0b5a1c98c --- /dev/null +++ b/src/main/resources/music/branding/vanced_light/monochrome/drawable/ic_app_icons_themed_youtube_music.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-hdpi/action_bar_logo.png b/src/main/resources/music/branding/vanced_light/resource/drawable-hdpi/action_bar_logo.png new file mode 100644 index 000000000..6bc2719d0 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-hdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-hdpi/action_bar_logo_release.png b/src/main/resources/music/branding/vanced_light/resource/drawable-hdpi/action_bar_logo_release.png new file mode 100644 index 000000000..ae0a53b4a Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-hdpi/action_bar_logo_release.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-hdpi/logo_music.png b/src/main/resources/music/branding/vanced_light/resource/drawable-hdpi/logo_music.png new file mode 100644 index 000000000..f4f6ec7de Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-hdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-hdpi/record.png b/src/main/resources/music/branding/vanced_light/resource/drawable-hdpi/record.png new file mode 100644 index 000000000..91f62deb5 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-hdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-large-hdpi/record.png b/src/main/resources/music/branding/vanced_light/resource/drawable-large-hdpi/record.png new file mode 100644 index 000000000..b4bcf895f Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-large-hdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-large-mdpi/record.png b/src/main/resources/music/branding/vanced_light/resource/drawable-large-mdpi/record.png new file mode 100644 index 000000000..59b81dd89 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-large-mdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-large-xhdpi/record.png b/src/main/resources/music/branding/vanced_light/resource/drawable-large-xhdpi/record.png new file mode 100644 index 000000000..5eed521c2 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-large-xhdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-mdpi/action_bar_logo.png b/src/main/resources/music/branding/vanced_light/resource/drawable-mdpi/action_bar_logo.png new file mode 100644 index 000000000..dd85b4948 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-mdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-mdpi/logo_music.png b/src/main/resources/music/branding/vanced_light/resource/drawable-mdpi/logo_music.png new file mode 100644 index 000000000..3e961fdf9 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-mdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-mdpi/record.png b/src/main/resources/music/branding/vanced_light/resource/drawable-mdpi/record.png new file mode 100644 index 000000000..74cbc2aa2 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-mdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-xhdpi/action_bar_logo.png b/src/main/resources/music/branding/vanced_light/resource/drawable-xhdpi/action_bar_logo.png new file mode 100644 index 000000000..c26398c38 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-xhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-xhdpi/logo_music.png b/src/main/resources/music/branding/vanced_light/resource/drawable-xhdpi/logo_music.png new file mode 100644 index 000000000..179ff1f10 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-xhdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-xhdpi/record.png b/src/main/resources/music/branding/vanced_light/resource/drawable-xhdpi/record.png new file mode 100644 index 000000000..e50c59691 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-xhdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-xlarge-hdpi/record.png b/src/main/resources/music/branding/vanced_light/resource/drawable-xlarge-hdpi/record.png new file mode 100644 index 000000000..d671e18e4 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-xlarge-hdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-xlarge-mdpi/record.png b/src/main/resources/music/branding/vanced_light/resource/drawable-xlarge-mdpi/record.png new file mode 100644 index 000000000..e50c59691 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-xlarge-mdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-xxhdpi/action_bar_logo.png b/src/main/resources/music/branding/vanced_light/resource/drawable-xxhdpi/action_bar_logo.png new file mode 100644 index 000000000..e58964176 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-xxhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-xxhdpi/logo_music.png b/src/main/resources/music/branding/vanced_light/resource/drawable-xxhdpi/logo_music.png new file mode 100644 index 000000000..b1f7acecd Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-xxhdpi/logo_music.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-xxhdpi/record.png b/src/main/resources/music/branding/vanced_light/resource/drawable-xxhdpi/record.png new file mode 100644 index 000000000..d671e18e4 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-xxhdpi/record.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-xxxhdpi/action_bar_logo.png b/src/main/resources/music/branding/vanced_light/resource/drawable-xxxhdpi/action_bar_logo.png new file mode 100644 index 000000000..9a451629e Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-xxxhdpi/action_bar_logo.png differ diff --git a/src/main/resources/music/branding/vanced_light/resource/drawable-xxxhdpi/logo_music.png b/src/main/resources/music/branding/vanced_light/resource/drawable-xxxhdpi/logo_music.png new file mode 100644 index 000000000..9dbc103c8 Binary files /dev/null and b/src/main/resources/music/branding/vanced_light/resource/drawable-xxxhdpi/logo_music.png differ diff --git a/src/main/resources/music/sponsorblock/xml/sponsorblock_prefs.xml b/src/main/resources/music/sponsorblock/xml/sponsorblock_prefs.xml index 30ab62437..dfdceb521 100644 --- a/src/main/resources/music/sponsorblock/xml/sponsorblock_prefs.xml +++ b/src/main/resources/music/sponsorblock/xml/sponsorblock_prefs.xml @@ -5,32 +5,32 @@ - + - + - + - + - + - + - + - + - + diff --git a/src/main/resources/youtube/settings/host/values/strings.xml b/src/main/resources/youtube/settings/host/values/strings.xml index 0439150f5..4133dbe2a 100644 --- a/src/main/resources/youtube/settings/host/values/strings.xml +++ b/src/main/resources/youtube/settings/host/values/strings.xml @@ -92,13 +92,22 @@ Note: This feature hasn't been tested." Custom filter is disabled. Custom filter is enabled. Enable custom filter - Invalid keyword length (must be at least %s characters): %s. + Keyword filter for comments is disabled. + Keyword filter for comments is enabled. + Enable comments keyword filter + Keyword filter for feed and search is disabled. + Keyword filter for feed and search is enabled. + Enable keyword filter + Keyword filter for subscriptions is disabled. + Keyword filter for subscriptions is enabled. + Enable subscriptions keyword filter + Search/Home/Subscription results are filtered to hide content that matches keyword phrases\n\nLimitations\n• Some Shorts may not be hidden\n• Some UI components may not be hidden\n• Searching for a keyword may show no results + Invalid keyword. Cannot use: \'%s\' as a filter + Invalid keyword length (must be at least %s characters): %s. Configure keywords and phrases to hide, separated by new lines\n\nWords with uppercase letters in the middle must be entered with the casing (ie: iPhone, TikTok, LeBlanc). Edit keyword filter - Keyword filter is disabled. - Keyword filter is enabled. - Hides feed and search result videos using keyword filters. - Enable keyword filter + Hides videos using keyword filter. + Keyword filter Invalid custom playback speeds. Reset to default values. Add or change available playback speeds. Edit custom playback speeds @@ -897,7 +906,7 @@ Known issues: Swipe magnitude threshold The visibility of swipe overlay background. Swipe background visibility - Swiapeable area size can\'t be more than %s%%. Reset to default value. + Swipeable area size can\'t be more than %s%%. Reset to default value. Percentage of swipeable screen area. Swipe overlay screen size The text size for swipe overlay. diff --git a/src/main/resources/youtube/settings/speedmaster_icon/1843/layout/speedmaster_icon_edu_overlay.xml b/src/main/resources/youtube/settings/speedmaster_icon/1843/layout/speedmaster_icon_edu_overlay.xml deleted file mode 100644 index a5531ddb7..000000000 --- a/src/main/resources/youtube/settings/speedmaster_icon/1843/layout/speedmaster_icon_edu_overlay.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/youtube/settings/speedmaster_icon/1904/layout/speedmaster_icon_edu_overlay.xml b/src/main/resources/youtube/settings/speedmaster_icon/1904/layout/speedmaster_icon_edu_overlay.xml deleted file mode 100644 index ec1aa10e3..000000000 --- a/src/main/resources/youtube/settings/speedmaster_icon/1904/layout/speedmaster_icon_edu_overlay.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml index 26778f67a..469423393 100644 --- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -7,87 +7,95 @@ PREFERENCE: GENERAL_SETTINGS --> + SETTINGS: CHANGE_START_PAGE --> + SETTINGS: DISABLE_AUTO_CAPTIONS --> + SETTINGS: DISABLE_ROLLING_NUMBER_ANIMATIONS --> + SETTINGS: ENABLE_GRADIENT_LOADING_SCREEN --> + SETTINGS: ENABLE_SONG_SEARCH --> + SETTINGS: ENABLE_TABLET_MINI_PLAYER --> + SETTINGS: ENABLE_WIDE_SEARCH_BAR --> + SETTINGS: HIDE_ACCOUNT_MENU --> + SETTINGS: HIDE_AUTO_PLAYER_POPUP_PANELS --> + SETTINGS: HIDE_CAST_BUTTON --> + SETTINGS: HIDE_CATEGORY_BAR --> + SETTINGS: HIDE_CHANNEL_LIST_SUBMENU --> + SETTINGS: HIDE_CROWDFUNDING_BOX --> + SETTINGS: HIDE_FLOATING_MICROPHONE --> + SETTINGS: HIDE_HANDLE --> + SETTINGS: HIDE_LATEST_VIDEOS_BUTTON --> + SETTINGS: HIDE_LOAD_MORE_BUTTON --> + SETTINGS: HIDE_MIX_PLAYLISTS --> + SETTINGS: HIDE_SEARCH_TERM_THUMBNAIL --> + SETTINGS: HIDE_SNACK_BAR --> + SETTINGS: HIDE_TOOLBAR_BUTTON --> + SETTINGS: HIDE_TRENDING_SEARCHES --> + SETTINGS: REMOVE_VIEWER_DISCRETION_DIALOG --> + SETTINGS: HIDE_LAYOUT_COMPONENTS --> + SETTINGS: GENERAL_EXPERIMENTAL_FLAGS --> + SETTINGS: HIDE_SUGGESTIONS_SHELF --> + SETTINGS: HIDE_LAYOUT_COMPONENTS --> + SETTINGS: HIDE_CHANNEL_PROFILE_COMPONENTS --> + SETTINGS: HIDE_DESCRIPTION_COMPONENTS --> @@ -149,19 +157,19 @@ - SETTINGS: HIDE_GENERAL_ADS --> + SETTINGS: HIDE_GENERAL_ADS --> + SETTINGS: HIDE_VIDEO_ADS --> + SETTINGS: HIDE_GENERAL_ADS --> + SETTINGS: HIDE_GENERAL_ADS --> @@ -184,17 +192,102 @@ PREFERENCE: ALTERNATIVE_THUMBNAILS_SETTINGS --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SETTINGS: ENABLE_BOTTOM_PLAYER_GESTURES --> + SETTINGS: HIDE_CHANNEL_BAR_BUTTON --> + SETTINGS: BUTTON_CONTAINER --> + SETTINGS: COMMENT_COMPONENTS --> @@ -230,40 +323,40 @@ + SETTINGS: HIDE_FEED_FLYOUT_PANEL --> + SETTINGS: PLAYER_FLYOUT_PANEL_HEADER --> + SETTINGS: ENABLE_OLD_QUALITY_LAYOUT --> + + SETTINGS: HIDE_PLAYER_FLYOUT_PANEL --> + SETTINGS: PLAYER_FLYOUT_PANEL_ADDITIONAL_SETTINGS_HEADER --> + SETTINGS: CHANGE_PLAYER_FLYOUT_PANEL_TOGGLE --> + SETTINGS: HIDE_PLAYER_FLYOUT_PANEL --> @@ -273,17 +366,17 @@ PREFERENCE: FULLSCREEN_SETTINGS --> + SETTINGS: AMBIENT_MODE_SWITCH --> + SETTINGS: HIDE_AUTOPLAY_PREVIEW --> + SETTINGS: HIDE_END_SCREEN_OVERLAY --> + SETTINGS: HIDE_FULLSCREEN_PANELS --> + SETTINGS: QUICK_ACTIONS_COMPONENTS --> + SETTINGS: FULLSCREEN_EXPERIMENTAL_FLAGS --> + SETTINGS: DISABLE_LANDSCAPE_MODE --> + SETTINGS: ENABLE_COMPACT_CONTROLS_OVERLAY --> + SETTINGS: FORCE_FULLSCREEN --> + + SETTINGS: KEEP_LANDSCAPE_MODE --> @@ -324,132 +417,49 @@ PREFERENCE: NAVIGATION_SETTINGS --> + SETTINGS: ENABLE_TABLET_NAVIGATION_BAR --> + SETTINGS: HIDE_NAVIGATION_BUTTONS --> + SETTINGS: HIDE_NAVIGATION_LABEL --> + SETTINGS: HIDE_NAVIGATION_BUTTONS --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + SETTINGS: APPEND_TIME_STAMP_INFORMATION --> + + SETTINGS: CUSTOM_SEEKBAR_COLOR --> + SETTINGS: ENABLE_NEW_THUMBNAIL_PREVIEW --> + SETTINGS: ENABLE_SEEKBAR_TAPPING --> + SETTINGS: HIDE_SEEKBAR --> + SETTINGS: HIDE_TIME_STAMP --> @@ -459,13 +469,13 @@ + SETTINGS: HIDE_SHORTS_SHELF --> + SETTINGS: SHORTS_PLAYER_PARENT --> + SETTINGS: DISABLE_STARTUP_SHORTS_PLAYER --> + SETTINGS: HIDE_SHORTS_COMPONENTS --> @@ -506,9 +516,11 @@ - + SETTINGS: SWIPE_CONTROLS --> + + + SETTINGS: SWIPE_EXPERIMENTAL_FLAGS --> @@ -518,38 +530,38 @@ PREFERENCE: VIDEO_SETTINGS --> + SETTINGS: DEFAULT_PLAYBACK_SPEED --> + + SETTINGS: DEFAULT_VIDEO_QUALITY --> + SETTINGS: DISABLE_HDR_VIDEO --> + SETTINGS: DEFAULT_PLAYBACK_SPEED --> + SETTINGS: CUSTOM_PLAYBACK_SPEED --> + SETTINGS: DEFAULT_PLAYBACK_SPEED --> + SETTINGS: DEFAULT_VIDEO_QUALITY --> + SETTINGS: VIDEO_EXPERIMENTAL_FLAGS --> + SETTINGS: DEFAULT_PLAYBACK_SPEED --> + SETTINGS: DEFAULT_VIDEO_QUALITY --> @@ -559,29 +571,29 @@ + SETTINGS: AMBIENT_MODE_SWITCH --> + SETTINGS: DISABLE_UPDATE_SCREEN --> + SETTINGS: DOUBLE_BACK_TIMEOUT --> + SETTINGS: ENABLE_DEBUG_LOGGING --> + SETTINGS: ENABLE_EXTERNAL_BROWSER --> + SETTINGS: ENABLE_LANGUAGE_SWITCH --> + SETTINGS: ENABLE_NEW_SPLASH_ANIMATION --> @@ -591,7 +603,7 @@ - SETTINGS: ENABLE_OPEN_LINKS_DIRECTLY --> + + SETTINGS: SANITIZE_SHARING_LINKS --> + SETTINGS: EXPERIMENTAL_FLAGS --> + SETTINGS: DISABLE_QUIC_PROTOCOL --> + SETTINGS: ENABLE_OPUS_CODEC --> + SETTINGS: LAYOUT_SWITCH --> + + SETTINGS: ENABLE_VIDEO_CODEC --> + SETTINGS: SPOOF_APP_VERSION --> + SETTINGS: SPOOF_DEVICE_DIMENSIONS -->