mirror of
https://github.com/revanced/revanced-patches.git
synced 2025-12-07 09:53:55 +01:00
Compare commits
10 Commits
v5.43.0-de
...
v5.43.1-de
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
949d6bdd19 | ||
|
|
7563990750 | ||
|
|
4b605eb270 | ||
|
|
c2d7a7fb8b | ||
|
|
a55560dc25 | ||
|
|
e8522d703e | ||
|
|
068d029a03 | ||
|
|
0c19dbaf30 | ||
|
|
bf73ac8316 | ||
|
|
95eee59a87 |
38
CHANGELOG.md
38
CHANGELOG.md
@@ -1,3 +1,41 @@
|
||||
## [5.43.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.43.0...v5.43.1-dev.1) (2025-10-14)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **X / Twitter - Change link sharing domain:** Resolve duplicate patch option ([#6119](https://github.com/ReVanced/revanced-patches/issues/6119)) ([7563990](https://github.com/ReVanced/revanced-patches/commit/75639907502382f63fa127a886362d4a4573e6e3))
|
||||
|
||||
# [5.43.0](https://github.com/ReVanced/revanced-patches/compare/v5.42.1...v5.43.0) (2025-10-14)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **Custom branding:** Use white notification icon for expanded status bar panel ([95eee59](https://github.com/ReVanced/revanced-patches/commit/95eee59a87a680e212a3ba06e1afefee8d91ee9d))
|
||||
* **Instagram - Change sharing domain:** Display patch option ([#6089](https://github.com/ReVanced/revanced-patches/issues/6089)) ([be2b144](https://github.com/ReVanced/revanced-patches/commit/be2b144cc9c4108ec37e16f3dd20573d88ffaa2b))
|
||||
* **X / Twitter - Change Link Sharing Domain:** Change link domain of share copy action ([#6091](https://github.com/ReVanced/revanced-patches/issues/6091)) ([5484625](https://github.com/ReVanced/revanced-patches/commit/54846253d748f4e7e30b2bba427c7d2fb9c341e2))
|
||||
* **YouTube - Custom branding:** Do not add a broken custom icon if the user provides an invalid custom icon path ([6555f6e](https://github.com/ReVanced/revanced-patches/commit/6555f6e6f8b52c2f1ddab1f52c6704cd2d8cfc12))
|
||||
* **YouTube - Custom branding:** Use ReVanced icon for status bar notification icon ([#6108](https://github.com/ReVanced/revanced-patches/issues/6108)) ([10ea250](https://github.com/ReVanced/revanced-patches/commit/10ea250d4a91f8ab3b7f865612a403fc93a857b5))
|
||||
* **YouTube - Force original audio:** Do not use translated audio if stream spoofing is off and force audio is on ([0c19dba](https://github.com/ReVanced/revanced-patches/commit/0c19dbaf30bcb95a29448d98b028ebeea54cc7d3))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **Instagram:** Add `Hide suggested content` patch ([#6075](https://github.com/ReVanced/revanced-patches/issues/6075)) ([50f0b9c](https://github.com/ReVanced/revanced-patches/commit/50f0b9c5eee95ff5f9974e344802e1d2a4aab47b))
|
||||
|
||||
# [5.43.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.43.0-dev.3...v5.43.0-dev.4) (2025-10-14)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **YouTube - Force original audio:** Do not use translated audio if stream spoofing is off and force audio is on ([0c19dba](https://github.com/ReVanced/revanced-patches/commit/0c19dbaf30bcb95a29448d98b028ebeea54cc7d3))
|
||||
|
||||
# [5.43.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.43.0-dev.2...v5.43.0-dev.3) (2025-10-14)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **Custom branding:** Use white notification icon for expanded status bar panel ([95eee59](https://github.com/ReVanced/revanced-patches/commit/95eee59a87a680e212a3ba06e1afefee8d91ee9d))
|
||||
|
||||
# [5.43.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.43.0-dev.1...v5.43.0-dev.2) (2025-10-14)
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.twitter.patches.links;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public final class ChangeLinkSharingDomainPatch {
|
||||
private static final String LINK_FORMAT = "%s/%s/status/%s";
|
||||
private static final String LINK_FORMAT = "https://%s/%s/status/%s";
|
||||
|
||||
/**
|
||||
* Method is modified during patching. Do not change.
|
||||
|
||||
@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
|
||||
org.gradle.parallel = true
|
||||
android.useAndroidX = true
|
||||
kotlin.code.style = official
|
||||
version = 5.43.0-dev.2
|
||||
version = 5.43.1-dev.1
|
||||
|
||||
@@ -27,7 +27,7 @@ val forceOriginalAudioPatch = forceOriginalAudioPatch(
|
||||
)
|
||||
)
|
||||
},
|
||||
fixUseLocalizedAudioTrackFlag = is_8_10_or_greater,
|
||||
fixUseLocalizedAudioTrackFlag = { is_8_10_or_greater },
|
||||
mainActivityOnCreateFingerprint = mainActivityOnCreateFingerprint,
|
||||
subclassExtensionClassDescriptor = EXTENSION_CLASS_DESCRIPTOR,
|
||||
preferenceScreen = PreferenceScreen.MISC,
|
||||
|
||||
@@ -4,14 +4,17 @@ package app.revanced.patches.music.playservice
|
||||
|
||||
import app.revanced.patcher.patch.resourcePatch
|
||||
import app.revanced.util.findPlayStoreServicesVersion
|
||||
import kotlin.properties.Delegates
|
||||
|
||||
var is_7_33_or_greater = false
|
||||
// Use notNull delegate so an exception is thrown if these fields are accessed before they are set.
|
||||
|
||||
var is_7_33_or_greater: Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_8_10_or_greater = false
|
||||
var is_8_10_or_greater: Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_8_11_or_greater = false
|
||||
var is_8_11_or_greater: Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_8_15_or_greater = false
|
||||
var is_8_15_or_greater: Boolean by Delegates.notNull()
|
||||
private set
|
||||
|
||||
val versionCheckPatch = resourcePatch(
|
||||
|
||||
@@ -27,4 +27,3 @@ internal val selectAudioStreamFingerprint = fingerprint {
|
||||
&& method.containsLiteralInstruction(AUDIO_STREAM_IGNORE_DEFAULT_FEATURE_FLAG)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ private const val EXTENSION_CLASS_DESCRIPTOR =
|
||||
internal fun forceOriginalAudioPatch(
|
||||
block: BytecodePatchBuilder.() -> Unit = {},
|
||||
executeBlock: BytecodePatchContext.() -> Unit = {},
|
||||
fixUseLocalizedAudioTrackFlag: Boolean,
|
||||
fixUseLocalizedAudioTrackFlag: () -> Boolean,
|
||||
mainActivityOnCreateFingerprint: Fingerprint,
|
||||
subclassExtensionClassDescriptor: String,
|
||||
preferenceScreen: BasePreferenceScreen.Screen
|
||||
@@ -64,7 +64,7 @@ internal fun forceOriginalAudioPatch(
|
||||
|
||||
// Disable feature flag that ignores the default track flag
|
||||
// and instead overrides to the user region language.
|
||||
if (fixUseLocalizedAudioTrackFlag) {
|
||||
if (fixUseLocalizedAudioTrackFlag()) {
|
||||
selectAudioStreamFingerprint.method.insertLiteralOverride(
|
||||
AUDIO_STREAM_IGNORE_DEFAULT_FEATURE_FLAG,
|
||||
"$EXTENSION_CLASS_DESCRIPTOR->ignoreDefaultAudioStream(Z)Z"
|
||||
|
||||
@@ -15,9 +15,9 @@ import java.util.logging.Logger
|
||||
|
||||
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/twitter/patches/links/ChangeLinkSharingDomainPatch;"
|
||||
|
||||
internal val domainNameOption by stringOption(
|
||||
internal val domainNameOption = stringOption(
|
||||
key = "domainName",
|
||||
default = "https://fxtwitter.com",
|
||||
default = "fxtwitter.com",
|
||||
title = "Domain name",
|
||||
description = "The domain name to use when sharing links.",
|
||||
required = true,
|
||||
@@ -28,7 +28,7 @@ internal val domainNameOption by stringOption(
|
||||
// may not allow network connections or the network may be down.
|
||||
try {
|
||||
InetAddress.getByName(it)
|
||||
} catch (e: UnknownHostException) {
|
||||
} catch (_: UnknownHostException) {
|
||||
Logger.getLogger(this::class.java.name).warning(
|
||||
"Host \"$it\" did not resolve to any domain."
|
||||
)
|
||||
@@ -38,13 +38,9 @@ internal val domainNameOption by stringOption(
|
||||
|
||||
internal val changeLinkSharingDomainResourcePatch = resourcePatch {
|
||||
execute {
|
||||
val domainName = domainNameOption!!
|
||||
val domainName = domainNameOption.value!!
|
||||
|
||||
val shareLinkTemplate = if (domainName.endsWith("/")) {
|
||||
"$domainName%1\$s/status/%2\$s"
|
||||
} else {
|
||||
"$domainName/%1\$s/status/%2\$s"
|
||||
}
|
||||
val shareLinkTemplate = "https://$domainName/%1\$s/status/%2\$s"
|
||||
|
||||
document("res/values/strings.xml").use { document ->
|
||||
document.documentElement.childNodes.findElementByAttributeValueOrThrow(
|
||||
@@ -58,7 +54,8 @@ internal val changeLinkSharingDomainResourcePatch = resourcePatch {
|
||||
@Suppress("unused")
|
||||
val changeLinkSharingDomainPatch = bytecodePatch(
|
||||
name = PATCH_NAME_CHANGE_LINK_SHARING_DOMAIN,
|
||||
description = PATCH_DESCRIPTION_CHANGE_LINK_SHARING_DOMAIN
|
||||
description = PATCH_DESCRIPTION_CHANGE_LINK_SHARING_DOMAIN,
|
||||
use = false
|
||||
) {
|
||||
dependsOn(
|
||||
changeLinkSharingDomainResourcePatch,
|
||||
@@ -72,11 +69,11 @@ val changeLinkSharingDomainPatch = bytecodePatch(
|
||||
)
|
||||
)
|
||||
|
||||
execute {
|
||||
val domainName = domainNameOption!!
|
||||
val domainName by domainNameOption()
|
||||
|
||||
execute {
|
||||
// Replace the domain name in the link sharing extension methods.
|
||||
linkSharingDomainHelperFingerprint.method.returnEarly(domainName)
|
||||
linkSharingDomainHelperFingerprint.method.returnEarly(domainName!!)
|
||||
|
||||
// Replace the domain name when copying a link with "Copy link" button.
|
||||
linkBuilderFingerprint.method.addInstructions(
|
||||
|
||||
@@ -4,72 +4,75 @@ package app.revanced.patches.youtube.misc.playservice
|
||||
|
||||
import app.revanced.patcher.patch.resourcePatch
|
||||
import app.revanced.util.findPlayStoreServicesVersion
|
||||
import kotlin.properties.Delegates
|
||||
|
||||
// Use notNull delegate so an exception is thrown if these fields are accessed before they are set.
|
||||
|
||||
@Deprecated("19.34.42 is the lowest supported version")
|
||||
var is_19_03_or_greater = false
|
||||
var is_19_03_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
@Deprecated("19.34.42 is the lowest supported version")
|
||||
var is_19_04_or_greater = false
|
||||
var is_19_04_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
@Deprecated("19.34.42 is the lowest supported version")
|
||||
var is_19_16_or_greater = false
|
||||
var is_19_16_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
@Deprecated("19.34.42 is the lowest supported version")
|
||||
var is_19_17_or_greater = false
|
||||
var is_19_17_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
@Deprecated("19.34.42 is the lowest supported version")
|
||||
var is_19_18_or_greater = false
|
||||
var is_19_18_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
@Deprecated("19.34.42 is the lowest supported version")
|
||||
var is_19_23_or_greater = false
|
||||
var is_19_23_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
@Deprecated("19.34.42 is the lowest supported version")
|
||||
var is_19_25_or_greater = false
|
||||
var is_19_25_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
@Deprecated("19.34.42 is the lowest supported version")
|
||||
var is_19_26_or_greater = false
|
||||
var is_19_26_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
@Deprecated("19.34.42 is the lowest supported version")
|
||||
var is_19_29_or_greater = false
|
||||
var is_19_29_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
@Deprecated("19.34.42 is the lowest supported version")
|
||||
var is_19_32_or_greater = false
|
||||
var is_19_32_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
@Deprecated("19.34.42 is the lowest supported version")
|
||||
var is_19_33_or_greater = false
|
||||
var is_19_33_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
@Deprecated("19.34.42 is the lowest supported version")
|
||||
var is_19_34_or_greater = false
|
||||
var is_19_34_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_19_35_or_greater = false
|
||||
var is_19_35_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_19_36_or_greater = false
|
||||
var is_19_36_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_19_41_or_greater = false
|
||||
var is_19_41_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_19_43_or_greater = false
|
||||
var is_19_43_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_19_46_or_greater = false
|
||||
var is_19_46_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_19_47_or_greater = false
|
||||
var is_19_47_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_19_49_or_greater = false
|
||||
var is_19_49_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_20_02_or_greater = false
|
||||
var is_20_02_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_20_03_or_greater = false
|
||||
var is_20_03_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_20_05_or_greater = false
|
||||
var is_20_05_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_20_07_or_greater = false
|
||||
var is_20_07_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_20_09_or_greater = false
|
||||
var is_20_09_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_20_10_or_greater = false
|
||||
var is_20_10_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_20_14_or_greater = false
|
||||
var is_20_14_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
var is_20_15_or_greater = false
|
||||
var is_20_15_or_greater : Boolean by Delegates.notNull()
|
||||
private set
|
||||
|
||||
val versionCheckPatch = resourcePatch(
|
||||
|
||||
@@ -29,7 +29,7 @@ val forceOriginalAudioPatch = forceOriginalAudioPatch(
|
||||
)
|
||||
)
|
||||
},
|
||||
fixUseLocalizedAudioTrackFlag = is_20_07_or_greater,
|
||||
fixUseLocalizedAudioTrackFlag = { is_20_07_or_greater },
|
||||
mainActivityOnCreateFingerprint = mainActivityOnCreateFingerprint,
|
||||
subclassExtensionClassDescriptor = EXTENSION_CLASS_DESCRIPTOR,
|
||||
preferenceScreen = PreferenceScreen.VIDEO,
|
||||
|
||||
@@ -24,14 +24,14 @@ Second \"item\" text"</string>
|
||||
<patch id="layout.branding.baseCustomBrandingPatch">
|
||||
<string name="revanced_custom_branding_name_title">Nom de l\'application</string>
|
||||
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
|
||||
<string name="revanced_custom_branding_name_entry_5">Personnalisé</string>
|
||||
<string name="revanced_custom_branding_name_entry_5">Personnalisée</string>
|
||||
<string name="revanced_custom_branding_icon_title">Icône de l\'application</string>
|
||||
<string name="revanced_custom_branding_icon_entry_1">Original</string>
|
||||
<string name="revanced_custom_branding_icon_entry_1">Originale</string>
|
||||
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
|
||||
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimaliste</string>
|
||||
<string name="revanced_custom_branding_icon_entry_4">ReVanced mis à l\'échelle</string>
|
||||
<string name="revanced_custom_branding_icon_entry_4">ReVanced mise à l\'échelle</string>
|
||||
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
|
||||
<string name="revanced_custom_branding_icon_entry_5">Personnalisé</string>
|
||||
<string name="revanced_custom_branding_icon_entry_5">Personnalisée</string>
|
||||
</patch>
|
||||
<patch id="misc.checks.checkEnvironmentPatch">
|
||||
<string name="revanced_check_environment_failed_title">Les vérifications ont échoué</string>
|
||||
@@ -1363,7 +1363,7 @@ Limitation : Il se peut que le bouton Retour dans la barre d'outils ne fonction
|
||||
</patch>
|
||||
<patch id="layout.miniplayer.miniplayerPatch">
|
||||
<string name="revanced_miniplayer_screen_title">Lecteur réduit</string>
|
||||
<string name="revanced_miniplayer_screen_summary">Modifier le style du lecteur réduit à l\'intérieur de l\'application</string>
|
||||
<string name="revanced_miniplayer_screen_summary">Modifiez le style du lecteur réduit intégré à l\'application</string>
|
||||
<string name="revanced_miniplayer_type_title">Type de lecteur réduit</string>
|
||||
<string name="revanced_miniplayer_type_entry_0">Désactivé</string>
|
||||
<string name="revanced_miniplayer_type_entry_1">Par défaut</string>
|
||||
@@ -1623,11 +1623,11 @@ Limitations :
|
||||
<string name="revanced_spoof_video_streams_av1_title">Autoriser Android VR AV1</string>
|
||||
<string name="revanced_spoof_video_streams_av1_summary_on">"Le codec vidéo est AVC (H.264), VP9 ou AV1
|
||||
|
||||
La lecture peut saccader ou perdre des images"</string>
|
||||
La lecture peut être saccadée et des images peuvent être perdues"</string>
|
||||
<string name="revanced_spoof_video_streams_av1_summary_off">Le codec vidéo est AVC (H.264) ou VP9</string>
|
||||
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"L'activation de ce paramètre peut utiliser le décodage AV1 logiciel.
|
||||
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"L'activation de ce paramètre permet l'utilisation du décodage AV1 logiciel.
|
||||
|
||||
La lecture vidéo avec AV1 peut saccader ou perdre des images."</string>
|
||||
La lecture vidéo avec AV1 peut être saccadée et des images peuvent être perdues."</string>
|
||||
<string name="revanced_spoof_video_streams_about_title">Effets secondaires de la falsification</string>
|
||||
<string name="revanced_spoof_video_streams_about_experimental">• Client expérimental, peut cesser de fonctionner à tout moment</string>
|
||||
<string name="revanced_spoof_video_streams_about_playback_failure">• Les vidéos sont susceptibles de s\'arrêter à 1:00, ou de ne pas être disponibles dans certaines régions</string>
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
|
||||
<!-- Path must be white to ensure the icon appears white in the expanded status bar panel. -->
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M4.03516,3 C3.80859,3,3.59375,3.11719,3.46875,3.30469 C3.34375,3.49609,3.32422,3.73828,3.41406,3.94922 C4.87109,7.27344,9.71875,18.3359,10.707,20.5938 C10.8164,20.8398,11.0586,21,11.3281,21 L12.6719,21 C12.9375,21,13.1836,20.8398,13.293,20.5938 C14.2813,18.3359,19.1289,7.27344,20.5859,3.94922 C20.6758,3.73828,20.6563,3.49609,20.5313,3.30469 C20.4063,3.11719,20.1914,3,19.9648,3 L19.0898,3 C18.8984,3,18.7227,3.11328,18.6445,3.28906 C17.875,5.04688,13.8008,14.3203,12.4414,17.418 C12.3672,17.5938,12.1914,17.707,12,17.707 C11.8086,17.707,11.6328,17.5938,11.5586,17.418 C10.1992,14.3203,6.125,5.04688,5.35547,3.28906 C5.27734,3.11328,5.10156,3,4.91016,3 Z M7.47266,3 C7.26563,3,7.07422,3.10938,6.97266,3.28906 C6.86719,3.46875,6.86719,3.69141,6.97266,3.87109 C8.02344,5.69141,10.4453,9.88672,11.4961,11.7109 C11.6016,11.8906,11.793,12,12,12 C12.207,12,12.3984,11.8906,12.5039,11.7109 C13.5547,9.88672,15.9766,5.69141,17.0273,3.87109 C17.1328,3.69141,17.1328,3.46875,17.0273,3.28906 C16.9258,3.10938,16.7344,3,16.5273,3 Z M7.47266,3" />
|
||||
</vector>
|
||||
@@ -6,7 +6,8 @@
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
|
||||
<!-- Path must be white to ensure the icon appears white in the expanded status bar panel. -->
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M4.03516,3 C3.80859,3,3.59375,3.11719,3.46875,3.30469 C3.34375,3.49609,3.32422,3.73828,3.41406,3.94922 C4.87109,7.27344,9.71875,18.3359,10.707,20.5938 C10.8164,20.8398,11.0586,21,11.3281,21 L12.6719,21 C12.9375,21,13.1836,20.8398,13.293,20.5938 C14.2813,18.3359,19.1289,7.27344,20.5859,3.94922 C20.6758,3.73828,20.6563,3.49609,20.5313,3.30469 C20.4063,3.11719,20.1914,3,19.9648,3 L19.0898,3 C18.8984,3,18.7227,3.11328,18.6445,3.28906 C17.875,5.04688,13.8008,14.3203,12.4414,17.418 C12.3672,17.5938,12.1914,17.707,12,17.707 C11.8086,17.707,11.6328,17.5938,11.5586,17.418 C10.1992,14.3203,6.125,5.04688,5.35547,3.28906 C5.27734,3.11328,5.10156,3,4.91016,3 Z M7.47266,3 C7.26563,3,7.07422,3.10938,6.97266,3.28906 C6.86719,3.46875,6.86719,3.69141,6.97266,3.87109 C8.02344,5.69141,10.4453,9.88672,11.4961,11.7109 C11.6016,11.8906,11.793,12,12,12 C12.207,12,12.3984,11.8906,12.5039,11.7109 C13.5547,9.88672,15.9766,5.69141,17.0273,3.87109 C17.1328,3.69141,17.1328,3.46875,17.0273,3.28906 C16.9258,3.10938,16.7344,3,16.5273,3 Z M7.47266,3" />
|
||||
</vector>
|
||||
Reference in New Issue
Block a user