Restyle UI (#690)

* enable testnet flavor
* v0.17.1.0
* migrate to androidx & material
* new color themes
* bump version v1.15.2
This commit is contained in:
m2049r 2020-10-16 02:52:08 +02:00 committed by GitHub
parent e5b15b7816
commit 1829d30b61
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
222 changed files with 5350 additions and 1200 deletions

View File

@ -7,9 +7,9 @@ android {
applicationId "com.m2049r.xmrwallet"
minSdkVersion 21
targetSdkVersion 28
versionCode 408
versionName "1.14.8 'On Board'"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
versionCode 502
versionName "1.15.2 'Dark Fork'"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags "-std=c++11"
@ -17,6 +17,11 @@ android {
}
}
}
bundle {
language {
enableSplit = false
}
}
flavorDimensions 'type', 'net'
productFlavors {
@ -28,6 +33,11 @@ android {
applicationIdSuffix '.stage'
versionNameSuffix ' (stage)'
}
devnet {
dimension 'net'
applicationIdSuffix '.test'
versionNameSuffix ' (test)'
}
alpha {
dimension 'type'
applicationIdSuffix '.alpha'
@ -70,7 +80,8 @@ android {
def availableLocales = ["en"]
new File("app/src/main/res/").eachFileMatch(~/^values-.*/) { file ->
def languageTag = file.name.substring(7).replace("-r", "-")
availableLocales.add(languageTag)
if (languageTag != "night")
availableLocales.add(languageTag)
}
// APKs for the same app that all have the same version information.
@ -100,30 +111,30 @@ android {
}
dependencies {
implementation "com.android.support:appcompat-v7:$rootProject.ext.supportVersion"
implementation "com.android.support:design:$rootProject.ext.supportVersion"
implementation "com.android.support:support-v4:$rootProject.ext.supportVersion"
implementation "com.android.support:recyclerview-v7:$rootProject.ext.supportVersion"
implementation "com.android.support:cardview-v7:$rootProject.ext.supportVersion"
implementation "com.android.support:swiperefreshlayout:$rootProject.ext.supportVersion"
implementation "com.android.support.constraint:constraint-layout:$rootProject.ext.constraintVersion"
implementation 'me.dm7.barcodescanner:zxing:1.9.8'
implementation 'androidx.core:core:1.3.2'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation group: 'com.google.android.material', name: 'material', version: '1.3.0-alpha03'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
implementation 'me.dm7.barcodescanner:zxing:1.9.8'
implementation "com.squareup.okhttp3:okhttp:$rootProject.ext.okHttpVersion"
implementation "com.burgstaller:okhttp-digest:1.18"
implementation "com.burgstaller:okhttp-digest:2.0"
implementation "com.jakewharton.timber:timber:$rootProject.ext.timberVersion"
implementation 'com.nulab-inc:zxcvbn:1.2.3'
implementation 'com.nulab-inc:zxcvbn:1.3.0'
implementation 'dnsjava:dnsjava:2.1.8'
implementation 'org.jitsi:dnssecjava:1.1.3'
implementation 'org.slf4j:slf4j-nop:1.7.25'
implementation 'dnsjava:dnsjava:2.1.9'
implementation 'org.jitsi:dnssecjava:1.2.0'
implementation 'org.slf4j:slf4j-nop:1.7.30'
implementation 'com.github.brnunes:swipeablerecyclerview:1.0.2'
// https://mvnrepository.com/artifact/com.github.aelstad/keccakj
implementation 'com.github.aelstad:keccakj:1.1.0'
testImplementation "junit:junit:$rootProject.ext.junitVersion"
testImplementation "org.mockito:mockito-all:$rootProject.ext.mockitoVersion"
testImplementation "com.squareup.okhttp3:mockwebserver:$rootProject.ext.okHttpVersion"

View File

@ -20,8 +20,9 @@
android:supportsRtl="true"
android:theme="@style/MyMaterialTheme"
android:usesCleartextTraffic="true">
<activity android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden"
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|uiMode"
android:launchMode="singleTop"
android:screenOrientation="portrait">
<intent-filter>
@ -31,13 +32,13 @@
</activity>
<activity
android:name=".WalletActivity"
android:configChanges="orientation|keyboardHidden"
android:configChanges="orientation|keyboardHidden|uiMode"
android:label="@string/wallet_activity_name"
android:launchMode="singleTask"
android:screenOrientation="behind" />
android:screenOrientation="behind"/>
<activity
android:name=".LoginActivity"
android:configChanges="orientation|keyboardHidden"
android:configChanges="orientation|keyboardHidden|uiMode"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="locked">
@ -65,10 +66,11 @@
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/usb_device_filter" />
</activity>
<activity android:name=".onboarding.OnBoardingActivity"
android:configChanges="orientation|keyboardHidden"
<activity
android:name=".onboarding.OnBoardingActivity"
android:configChanges="orientation|keyboardHidden|uiMode"
android:launchMode="singleTask"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<service
android:name=".service.WalletService"
@ -77,7 +79,7 @@
android:label="Monero Wallet Service" />
<provider
android:name="android.support.v4.content.FileProvider"
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">

View File

@ -15,9 +15,9 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.PowerManager;
import android.support.annotation.CallSuper;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import androidx.annotation.CallSuper;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import android.widget.Toast;
import com.m2049r.xmrwallet.data.BarcodeData;

View File

@ -17,13 +17,9 @@
package com.m2049r.xmrwallet;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TextInputLayout;
import android.support.v4.app.Fragment;
import android.text.Editable;
import android.text.Html;
import android.text.InputType;
@ -38,9 +34,15 @@ import android.view.WindowManager;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Switch;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.switchmaterial.SwitchMaterial;
import com.google.android.material.textfield.TextInputLayout;
import com.m2049r.xmrwallet.model.Wallet;
import com.m2049r.xmrwallet.model.WalletManager;
import com.m2049r.xmrwallet.util.FingerprintHelper;
@ -202,13 +204,13 @@ public class GenerateFragment extends Fragment {
if (FingerprintHelper.isDeviceSupported(getContext())) {
llFingerprintAuth.setVisibility(View.VISIBLE);
final Switch swFingerprintAllowed = (Switch) llFingerprintAuth.getChildAt(0);
final SwitchMaterial swFingerprintAllowed = (SwitchMaterial) llFingerprintAuth.getChildAt(0);
swFingerprintAllowed.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!swFingerprintAllowed.isChecked()) return;
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity());
builder.setMessage(Html.fromHtml(getString(R.string.generate_fingerprint_warn)))
.setCancelable(false)
.setPositiveButton(getString(R.string.label_ok), null)
@ -507,7 +509,7 @@ public class GenerateFragment extends Fragment {
String name = etWalletName.getEditText().getText().toString();
String password = etWalletPassword.getEditText().getText().toString();
boolean fingerprintAuthAllowed = ((Switch) llFingerprintAuth.getChildAt(0)).isChecked();
boolean fingerprintAuthAllowed = ((SwitchMaterial) llFingerprintAuth.getChildAt(0)).isChecked();
// create the real wallet password
String crazyPass = KeyStoreHelper.getCrazyPass(getActivity(), password);
@ -646,7 +648,7 @@ public class GenerateFragment extends Fragment {
if (ledgerDialog != null) return;
final Activity activity = getActivity();
View promptsView = getLayoutInflater().inflate(R.layout.prompt_ledger_seed, null);
android.app.AlertDialog.Builder alertDialogBuilder = new android.app.AlertDialog.Builder(activity);
MaterialAlertDialogBuilder alertDialogBuilder = new MaterialAlertDialogBuilder(activity);
alertDialogBuilder.setView(promptsView);
final TextInputLayout etSeed = promptsView.findViewById(R.id.etSeed);

View File

@ -16,14 +16,10 @@
package com.m2049r.xmrwallet;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TextInputLayout;
import android.support.v4.app.Fragment;
import android.text.Editable;
import android.text.Html;
import android.text.TextWatcher;
@ -40,10 +36,17 @@ import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.ScrollView;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.switchmaterial.SwitchMaterial;
import com.google.android.material.textfield.TextInputLayout;
import com.m2049r.xmrwallet.ledger.Ledger;
import com.m2049r.xmrwallet.ledger.LedgerProgressDialog;
import com.m2049r.xmrwallet.model.NetworkType;
@ -118,31 +121,11 @@ public class GenerateReviewFragment extends Fragment {
tvWalletSpendKey.setTextIsSelectable(allowCopy);
tvWalletPassword.setTextIsSelectable(allowCopy);
bAccept.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
acceptWallet();
}
});
view.findViewById(R.id.bCopyViewKey).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
copyViewKey();
}
});
bCopyAddress.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
copyAddress();
}
});
bCopyAddress.setClickable(false);
view.findViewById(R.id.bAdvancedInfo).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showAdvancedInfo();
}
});
bAccept.setOnClickListener(v -> acceptWallet());
view.findViewById(R.id.bCopyViewKey).setOnClickListener(v -> copyViewKey());
bCopyAddress.setEnabled(false);
bCopyAddress.setOnClickListener(v -> copyAddress());
view.findViewById(R.id.bAdvancedInfo).setOnClickListener(v -> showAdvancedInfo());
Bundle args = getArguments();
type = args.getString(REQUEST_TYPE);
@ -287,8 +270,7 @@ public class GenerateReviewFragment extends Fragment {
showAdvanced = true;
}
if (showAdvanced) bAdvancedInfo.setVisibility(View.VISIBLE);
bCopyAddress.setClickable(true);
bCopyAddress.setImageResource(R.drawable.ic_content_copy_black_24dp);
bCopyAddress.setEnabled(true);
activityCallback.setTitle(name, getString(R.string.details_title));
activityCallback.setToolbarButton(
GenerateReviewFragment.VIEW_TYPE_ACCEPT.equals(type) ? Toolbar.BUTTON_NONE : Toolbar.BUTTON_BACK);
@ -352,7 +334,7 @@ public class GenerateReviewFragment extends Fragment {
}
@Override
public void onAttach(Context context) {
public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof Listener) {
this.activityCallback = (Listener) context;
@ -399,7 +381,7 @@ public class GenerateReviewFragment extends Fragment {
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
String type = getArguments().getString(REQUEST_TYPE); // intance variable <type> not set yet
if (GenerateReviewFragment.VIEW_TYPE_ACCEPT.equals(type)) {
inflater.inflate(R.menu.wallet_details_help_menu, menu);
@ -448,7 +430,7 @@ public class GenerateReviewFragment extends Fragment {
protected Boolean doInBackground(String... params) {
if (params.length != 2) return false;
final String userPassword = params[0];
final boolean fingerPassValid = Boolean.valueOf(params[1]);
final boolean fingerPassValid = Boolean.parseBoolean(params[1]);
newPassword = KeyStoreHelper.getCrazyPass(getActivity(), userPassword);
final boolean success = changeWalletPassword(newPassword);
if (success) {
@ -488,7 +470,7 @@ public class GenerateReviewFragment extends Fragment {
LayoutInflater li = LayoutInflater.from(getActivity());
View promptsView = li.inflate(R.layout.prompt_changepw, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());
AlertDialog.Builder alertDialogBuilder = new MaterialAlertDialogBuilder(getActivity());
alertDialogBuilder.setView(promptsView);
final TextInputLayout etPasswordA = promptsView.findViewById(R.id.etWalletPasswordA);
@ -498,7 +480,7 @@ public class GenerateReviewFragment extends Fragment {
etPasswordB.setHint(getString(R.string.prompt_changepwB, walletName));
LinearLayout llFingerprintAuth = promptsView.findViewById(R.id.llFingerprintAuth);
final Switch swFingerprintAllowed = (Switch) llFingerprintAuth.getChildAt(0);
final SwitchMaterial swFingerprintAllowed = (SwitchMaterial) llFingerprintAuth.getChildAt(0);
if (FingerprintHelper.isDeviceSupported(getActivity())) {
llFingerprintAuth.setVisibility(View.VISIBLE);
@ -507,7 +489,7 @@ public class GenerateReviewFragment extends Fragment {
public void onClick(View view) {
if (!swFingerprintAllowed.isChecked()) return;
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(getActivity());
builder.setMessage(Html.fromHtml(getString(R.string.generate_fingerprint_warn)))
.setCancelable(false)
.setPositiveButton(getString(R.string.label_ok), null)
@ -596,7 +578,7 @@ public class GenerateReviewFragment extends Fragment {
etPasswordA.setError(getString(R.string.generate_empty_passwordB));
} else if (!newPasswordA.equals(newPasswordB)) {
etPasswordB.setError(getString(R.string.generate_bad_passwordB));
} else if (newPasswordA.equals(newPasswordB)) {
} else {
new AsyncChangePassword().execute(newPasswordA, Boolean.toString(swFingerprintAllowed.isChecked()));
Helper.hideKeyboardAlways(getActivity());
openDialog.dismiss();
@ -619,7 +601,7 @@ public class GenerateReviewFragment extends Fragment {
etPasswordA.setError(getString(R.string.generate_empty_passwordB));
} else if (!newPasswordA.equals(newPasswordB)) {
etPasswordB.setError(getString(R.string.generate_bad_passwordB));
} else if (newPasswordA.equals(newPasswordB)) {
} else {
new AsyncChangePassword().execute(newPasswordA, Boolean.toString(swFingerprintAllowed.isChecked()));
Helper.hideKeyboardAlways(getActivity());
openDialog.dismiss();

View File

@ -16,7 +16,6 @@
package com.m2049r.xmrwallet;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
@ -30,10 +29,6 @@ import android.hardware.usb.UsbManager;
import android.media.MediaScannerConnection;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MenuItem;
@ -43,6 +38,14 @@ import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.m2049r.xmrwallet.data.Node;
import com.m2049r.xmrwallet.data.NodeInfo;
import com.m2049r.xmrwallet.dialog.AboutFragment;
@ -55,10 +58,13 @@ import com.m2049r.xmrwallet.model.NetworkType;
import com.m2049r.xmrwallet.model.Wallet;
import com.m2049r.xmrwallet.model.WalletManager;
import com.m2049r.xmrwallet.service.WalletService;
import com.m2049r.xmrwallet.util.ColorHelper;
import com.m2049r.xmrwallet.util.DayNightMode;
import com.m2049r.xmrwallet.util.Helper;
import com.m2049r.xmrwallet.util.KeyStoreHelper;
import com.m2049r.xmrwallet.util.LocaleHelper;
import com.m2049r.xmrwallet.util.MoneroThreadPoolExecutor;
import com.m2049r.xmrwallet.util.NightmodeHelper;
import com.m2049r.xmrwallet.widget.Toolbar;
import java.io.File;
@ -69,7 +75,6 @@ import java.nio.channels.FileChannel;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
@ -85,6 +90,7 @@ public class LoginActivity extends BaseActivity
private static final String GENERATE_STACK = "gen";
private static final String NODES_PREFS_NAME = "nodes";
private static final String PREF_DAEMON_TESTNET = "daemon_testnet";
private static final String PREF_DAEMON_STAGENET = "daemon_stagenet";
private static final String PREF_DAEMON_MAINNET = "daemon_mainnet";
@ -163,6 +169,10 @@ public class LoginActivity extends BaseActivity
loadLegacyList(sharedPref.getString(PREF_DAEMON_STAGENET, null));
sharedPref.edit().remove(PREF_DAEMON_STAGENET).apply();
break;
case NetworkType_Testnet:
loadLegacyList(sharedPref.getString(PREF_DAEMON_TESTNET, null));
sharedPref.edit().remove(PREF_DAEMON_TESTNET).apply();
break;
default:
throw new IllegalStateException("unsupported net " + WalletManager.getInstance().getNetworkType());
}
@ -337,8 +347,8 @@ public class LoginActivity extends BaseActivity
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog diag = builder.setMessage(getString(R.string.details_alert_message))
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
builder.setMessage(getString(R.string.details_alert_message))
.setPositiveButton(getString(R.string.details_alert_yes), dialogClickListener)
.setNegativeButton(getString(R.string.details_alert_no), dialogClickListener)
.show();
@ -426,7 +436,7 @@ public class LoginActivity extends BaseActivity
LayoutInflater li = LayoutInflater.from(this);
View promptsView = li.inflate(R.layout.prompt_rename, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
AlertDialog.Builder alertDialogBuilder = new MaterialAlertDialogBuilder(this);
alertDialogBuilder.setView(promptsView);
final EditText etRename = promptsView.findViewById(R.id.etRename);
@ -581,7 +591,7 @@ public class LoginActivity extends BaseActivity
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
builder.setMessage(getString(R.string.archive_alert_message))
.setTitle(walletName)
.setPositiveButton(getString(R.string.archive_alert_yes), dialogClickListener)
@ -653,11 +663,11 @@ public class LoginActivity extends BaseActivity
break;
case NetworkType_Testnet:
toolbar.setSubtitle(getString(R.string.connect_testnet));
toolbar.setBackgroundResource(R.color.colorPrimaryDark);
toolbar.setBackgroundResource(ColorHelper.getThemedResourceId(this, R.attr.colorPrimaryDark));
break;
case NetworkType_Stagenet:
toolbar.setSubtitle(getString(R.string.connect_stagenet));
toolbar.setBackgroundResource(R.color.colorPrimaryDark);
toolbar.setBackgroundResource(ColorHelper.getThemedResourceId(this, R.attr.colorPrimaryDark));
break;
default:
throw new IllegalStateException("NetworkType unknown: " + net);
@ -1124,41 +1134,54 @@ public class LoginActivity extends BaseActivity
public void onChangeLocale() {
final ArrayList<Locale> availableLocales = LocaleHelper.getAvailableLocales(LoginActivity.this);
String[] localeDisplayName = new String[1 + availableLocales.size()];
Collections.sort(availableLocales, new Comparator<Locale>() {
@Override
public int compare(Locale locale1, Locale locale2) {
String localeString1 = LocaleHelper.getDisplayName(locale1, true);
String localeString2 = LocaleHelper.getDisplayName(locale2, true);
return localeString1.compareTo(localeString2);
}
Collections.sort(availableLocales, (locale1, locale2) -> {
String localeString1 = LocaleHelper.getDisplayName(locale1, true);
String localeString2 = LocaleHelper.getDisplayName(locale2, true);
return localeString1.compareTo(localeString2);
});
localeDisplayName[0] = getString(R.string.language_system_default);
for (int i = 1; i < localeDisplayName.length; i++) {
Locale locale = availableLocales.get(i - 1);
localeDisplayName[i] = LocaleHelper.getDisplayName(locale, true);
String[] localeDisplayNames = new String[1 + availableLocales.size()];
localeDisplayNames[0] = getString(R.string.language_system_default);
for (int i = 1; i < localeDisplayNames.length; i++) {
localeDisplayNames[i] = LocaleHelper.getDisplayName(availableLocales.get(i - 1), true);
}
int currentLocaleIndex = 0;
String currentLocaleName = LocaleHelper.getLocale(LoginActivity.this);
if (!currentLocaleName.isEmpty()) {
Locale currentLocale = Locale.forLanguageTag(currentLocaleName);
String currentLocalizedString = LocaleHelper.getDisplayName(currentLocale, true);
currentLocaleIndex = Arrays.asList(localeDisplayName).indexOf(currentLocalizedString);
String currentLocaleTag = LocaleHelper.getPreferredLanguageTag(LoginActivity.this);
if (!currentLocaleTag.isEmpty()) {
Locale currentLocale = Locale.forLanguageTag(currentLocaleTag);
String currentLocaleName = LocaleHelper.getDisplayName(currentLocale, true);
currentLocaleIndex = Arrays.asList(localeDisplayNames).indexOf(currentLocaleName);
if (currentLocaleIndex < 0) currentLocaleIndex = 0;
}
AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(LoginActivity.this);
builder.setTitle(getString(R.string.menu_language));
builder.setSingleChoiceItems(localeDisplayName, currentLocaleIndex, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
dialog.dismiss();
builder.setSingleChoiceItems(localeDisplayNames, currentLocaleIndex, (dialog, i) -> {
dialog.dismiss();
LocaleHelper.setLocale(LoginActivity.this,
(i == 0) ? "" : availableLocales.get(i - 1).toLanguageTag());
startActivity(getIntent().addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
LocaleHelper.setAndSaveLocale(this,
(i == 0) ? "" : availableLocales.get(i - 1).toLanguageTag());
startActivity(getIntent().addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
});
builder.show();
}
public void onChangeTheme() {
final DayNightMode currentDayNightSetting = DayNightMode.getValue(AppCompatDelegate.getDefaultNightMode());
// selection will be empty if UNKNOWN
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(LoginActivity.this);
builder.setTitle(getString(R.string.menu_daynight));
String[] modeNames = getResources().getStringArray(R.array.daynight_themes);
builder.setSingleChoiceItems(modeNames, currentDayNightSetting.ordinal(), (dialog, i) -> {
dialog.dismiss();
final DayNightMode mode = DayNightMode.values()[i];
if (currentDayNightSetting != mode) {
NightmodeHelper.setAndSavePreferredNightmode(LoginActivity.this, mode);
LoginActivity.this.recreate();
}
});
builder.show();
@ -1227,6 +1250,9 @@ public class LoginActivity extends BaseActivity
case R.id.action_language:
onChangeLocale();
return true;
case R.id.action_theme:
onChangeTheme();
return true;
case R.id.action_ledger_seed:
Fragment f = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
if (f instanceof GenerateFragment) {

View File

@ -19,11 +19,6 @@ package com.m2049r.xmrwallet;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.Fragment;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
@ -38,6 +33,12 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.m2049r.xmrwallet.data.NodeInfo;
import com.m2049r.xmrwallet.layout.NodeInfoAdapter;
import com.m2049r.xmrwallet.layout.WalletInfoAdapter;
@ -63,6 +64,7 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter
private List<WalletManager.WalletInfo> walletList = new ArrayList<>();
private List<WalletManager.WalletInfo> displayedList = new ArrayList<>();
private View tvGuntherSays;
private ImageView ivGunther;
private TextView tvNodeName;
private TextView tvNodeAddress;
@ -143,6 +145,7 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter
Timber.d("onCreateView");
View view = inflater.inflate(R.layout.fragment_login, container, false);
tvGuntherSays = view.findViewById(R.id.tvGuntherSays);
ivGunther = view.findViewById(R.id.ivGunther);
fabScreen = view.findViewById(R.id.fabScreen);
fab = view.findViewById(R.id.fab);
@ -275,13 +278,15 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter
if (displayedList.isEmpty()) {
fab.startAnimation(fab_pulse);
if (ivGunther.getDrawable() == null) {
ivGunther.setImageResource(R.drawable.gunther_desaturated);
ivGunther.setImageResource(R.drawable.ic_emptygunther);
tvGuntherSays.setVisibility(View.VISIBLE);
}
} else {
fab.clearAnimation();
if (ivGunther.getDrawable() != null) {
ivGunther.setImageDrawable(null);
}
tvGuntherSays.setVisibility(View.GONE);
}
// remove information of non-existent wallet

View File

@ -18,13 +18,14 @@ package com.m2049r.xmrwallet;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.m2049r.xmrwallet.onboarding.OnBoardingActivity;
import com.m2049r.xmrwallet.onboarding.OnBoardingManager;
public class MainActivity extends AppCompatActivity {
public class MainActivity extends BaseActivity {
@Override
protected void onCreate(@Nullable final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

View File

@ -16,16 +16,19 @@
package com.m2049r.xmrwallet;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TextInputLayout;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.RecyclerView;
import androidx.annotation.Nullable;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.textfield.TextInputLayout;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import androidx.recyclerview.widget.RecyclerView;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
@ -445,7 +448,7 @@ public class NodeFragment extends Fragment
}
EditDialog(final NodeInfo nodeInfo) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());
AlertDialog.Builder alertDialogBuilder = new MaterialAlertDialogBuilder(getActivity());
LayoutInflater li = LayoutInflater.from(alertDialogBuilder.getContext());
View promptsView = li.inflate(R.layout.prompt_editnode, null);
alertDialogBuilder.setView(promptsView);

View File

@ -25,12 +25,6 @@ import android.net.Uri;
import android.nfc.NfcManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TextInputLayout;
import android.support.v4.app.Fragment;
import android.support.v4.content.FileProvider;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.widget.ShareActionProvider;
import android.text.Editable;
import android.text.InputType;
import android.text.TextWatcher;
@ -42,7 +36,6 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
@ -50,6 +43,13 @@ import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.ShareActionProvider;
import androidx.core.content.FileProvider;
import androidx.core.view.MenuItemCompat;
import androidx.fragment.app.Fragment;
import com.google.android.material.textfield.TextInputLayout;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
@ -82,10 +82,11 @@ public class ReceiveFragment extends Fragment {
private ExchangeView evAmount;
private TextView tvQrCode;
private ImageView ivQrCode;
private View cvQrCode;
private ImageView ivQrCodeFull;
private EditText etDummy;
private ImageButton bCopyAddress;
private Button bSubaddress;
private ImageButton bSubaddress;
private Wallet wallet = null;
private boolean isMyWallet = false;
@ -109,6 +110,7 @@ public class ReceiveFragment extends Fragment {
tvAddress = view.findViewById(R.id.tvAddress);
etNotes = view.findViewById(R.id.etNotes);
evAmount = view.findViewById(R.id.evAmount);
cvQrCode = view.findViewById(R.id.cvQrCode);
ivQrCode = view.findViewById(R.id.qrCode);
tvQrCode = view.findViewById(R.id.tvQrCode);
ivQrCodeFull = view.findViewById(R.id.qrCodeFull);
@ -118,13 +120,9 @@ public class ReceiveFragment extends Fragment {
etDummy.setRawInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
bCopyAddress.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
copyAddress();
}
});
bCopyAddress.setOnClickListener(v -> copyAddress());
enableCopyAddress(false);
enableSubaddressButton(false);
evAmount.setOnNewAmountListener(new ExchangeView.OnNewAmountListener() {
@Override
@ -190,7 +188,7 @@ public class ReceiveFragment extends Fragment {
}
});
ivQrCode.setOnClickListener(new View.OnClickListener() {
cvQrCode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Helper.hideKeyboard(getActivity());
@ -315,13 +313,8 @@ public class ReceiveFragment extends Fragment {
return null;
}
void enableSubaddressButton(boolean enable) {
private void enableSubaddressButton(boolean enable) {
bSubaddress.setEnabled(enable);
if (enable) {
bSubaddress.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_settings_orange_24dp, 0, 0);
} else {
bSubaddress.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_settings_gray_24dp, 0, 0);
}
}
void copyAddress() {
@ -371,16 +364,13 @@ public class ReceiveFragment extends Fragment {
listenerCallback.setSubtitle(wallet.getAccountLabel());
tvAddress.setText(wallet.getAddress());
enableCopyAddress(true);
enableSubaddressButton(true);
hideProgress();
generateQr();
}
private void enableCopyAddress(boolean enable) {
bCopyAddress.setClickable(enable);
if (enable)
bCopyAddress.setImageResource(R.drawable.ic_content_copy_black_24dp);
else
bCopyAddress.setImageResource(R.drawable.ic_content_nocopy_black_24dp);
bCopyAddress.setEnabled(enable);
}
private void loadAndShow(String walletPath, String password) {

View File

@ -19,7 +19,7 @@ package com.m2049r.xmrwallet;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View File

@ -17,13 +17,18 @@
package com.m2049r.xmrwallet;
import android.content.Context;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.m2049r.xmrwallet.util.Helper;
import com.m2049r.xmrwallet.util.LocaleHelper;
import java.util.Locale;
import static android.view.WindowManager.LayoutParams;
public abstract class SecureActivity extends AppCompatActivity {
@ -37,7 +42,36 @@ public abstract class SecureActivity extends AppCompatActivity {
}
@Override
protected void attachBaseContext(Context context) {
super.attachBaseContext(LocaleHelper.setLocale(context, LocaleHelper.getLocale(context)));
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(newBase);
applyOverrideConfiguration(new Configuration());
}
@Override
public void applyOverrideConfiguration(Configuration newConfig) {
super.applyOverrideConfiguration(updateConfigurationIfSupported(newConfig));
}
private Configuration updateConfigurationIfSupported(Configuration config) {
// Configuration.getLocales is added after 24 and Configuration.locale is deprecated in 24
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
if (!config.getLocales().isEmpty()) {
return config;
}
} else {
if (config.locale != null) {
return config;
}
}
Locale locale = LocaleHelper.getPreferredLocale(this);
if (locale != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
config.setLocale(locale);
} else {
config.locale = locale;
}
}
return config;
}
}

View File

@ -19,24 +19,24 @@ package com.m2049r.xmrwallet;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.content.ContextCompat;
import android.text.InputType;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import com.m2049r.xmrwallet.data.UserNotes;
import com.m2049r.xmrwallet.model.TransactionInfo;
import com.m2049r.xmrwallet.model.Transfer;
import com.m2049r.xmrwallet.model.Wallet;
import com.m2049r.xmrwallet.util.Helper;
import com.m2049r.xmrwallet.data.UserNotes;
import com.m2049r.xmrwallet.widget.Toolbar;
import java.text.SimpleDateFormat;
@ -242,9 +242,9 @@ public class TxFragment extends Fragment {
} else if (info.isPending) {
setTxColour(ContextCompat.getColor(getContext(), R.color.tx_pending));
} else if (info.direction == TransactionInfo.Direction.Direction_In) {
setTxColour(ContextCompat.getColor(getContext(), R.color.tx_green));
setTxColour(ContextCompat.getColor(getContext(), R.color.tx_plus));
} else {
setTxColour(ContextCompat.getColor(getContext(), R.color.tx_red));
setTxColour(ContextCompat.getColor(getContext(), R.color.tx_minus));
}
Set<String> destinations = new HashSet<>();
StringBuffer sb = new StringBuffer();

View File

@ -16,7 +16,6 @@
package com.m2049r.xmrwallet;
import android.app.AlertDialog;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
@ -27,14 +26,6 @@ import android.content.pm.PackageManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.IBinder;
import android.support.annotation.NonNull;
import android.support.design.widget.NavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
@ -45,6 +36,17 @@ import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AlertDialog;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.navigation.NavigationView;
import com.m2049r.xmrwallet.data.BarcodeData;
import com.m2049r.xmrwallet.data.TxData;
import com.m2049r.xmrwallet.data.UserNotes;
@ -58,6 +60,7 @@ import com.m2049r.xmrwallet.model.TransactionInfo;
import com.m2049r.xmrwallet.model.Wallet;
import com.m2049r.xmrwallet.model.WalletManager;
import com.m2049r.xmrwallet.service.WalletService;
import com.m2049r.xmrwallet.util.ColorHelper;
import com.m2049r.xmrwallet.util.Helper;
import com.m2049r.xmrwallet.util.MoneroThreadPoolExecutor;
import com.m2049r.xmrwallet.widget.Toolbar;
@ -312,11 +315,6 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
}
private void updateStreetMode() {
if (isStreetMode()) {
toolbar.setBackgroundResource(R.drawable.backgound_toolbar_streetmode);
} else {
showNet();
}
invalidateOptionsMenu();
}
@ -426,10 +424,10 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
toolbar.setBackgroundResource(R.drawable.backgound_toolbar_mainnet);
break;
case NetworkType_Testnet:
toolbar.setBackgroundResource(R.color.colorPrimaryDark);
toolbar.setBackgroundResource(ColorHelper.getThemedResourceId(this, R.attr.colorPrimaryDark));
break;
case NetworkType_Stagenet:
toolbar.setBackgroundResource(R.color.colorPrimaryDark);
toolbar.setBackgroundResource(ColorHelper.getThemedResourceId(this, R.attr.colorPrimaryDark));
break;
default:
throw new IllegalStateException("Unsupported Network: " + WalletManager.getInstance().getNetworkType());
@ -667,7 +665,7 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
haveWallet = true;
invalidateOptionsMenu();
enableStreetMode(requestStreetMode);
if (requestStreetMode) onEnableStreetMode();
final WalletFragment walletFragment = (WalletFragment)
getSupportFragmentManager().findFragmentById(R.id.fragment_container);
@ -872,7 +870,7 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
builder.setMessage(getString(R.string.details_alert_message))
.setPositiveButton(getString(R.string.details_alert_yes), dialogClickListener)
.setNegativeButton(getString(R.string.details_alert_no), dialogClickListener)
@ -1093,7 +1091,7 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
final LayoutInflater li = LayoutInflater.from(this);
final View promptsView = li.inflate(R.layout.prompt_rename, null);
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
final AlertDialog.Builder alertDialogBuilder = new MaterialAlertDialogBuilder(this);
alertDialogBuilder.setView(promptsView);
final EditText etRename = promptsView.findViewById(R.id.etRename);

View File

@ -17,12 +17,10 @@
package com.m2049r.xmrwallet;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
@ -38,6 +36,11 @@ import android.widget.ProgressBar;
import android.widget.Spinner;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
import com.github.brnunes.swipeablerecyclerview.SwipeableRecyclerViewTouchListener;
import com.m2049r.xmrwallet.layout.TransactionInfoAdapter;
import com.m2049r.xmrwallet.model.TransactionInfo;
@ -70,6 +73,8 @@ public class WalletFragment extends Fragment
private ProgressBar pbProgress;
private Button bReceive;
private Button bSend;
private ImageView ivStreetGunther;
private Drawable streetGunther = null;
private Spinner sCurrency;
@ -97,11 +102,12 @@ public class WalletFragment extends Fragment
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_wallet, container, false);
ivStreetGunther = view.findViewById(R.id.ivStreetGunther);
tvStreetView = view.findViewById(R.id.tvStreetView);
llBalance = view.findViewById(R.id.llBalance);
flExchange = view.findViewById(R.id.flExchange);
((ProgressBar) view.findViewById(R.id.pbExchange)).getIndeterminateDrawable().
setColorFilter(getResources().getColor(R.color.trafficGray),
setColorFilter(getResources().getColor(R.color.progress_circle),
android.graphics.PorterDuff.Mode.MULTIPLY);
tvProgress = view.findViewById(R.id.tvProgress);
@ -199,13 +205,15 @@ public class WalletFragment extends Fragment
void showBalance(String balance) {
tvBalance.setText(balance);
if (!activityCallback.isStreetMode()) {
final boolean streetMode = activityCallback.isStreetMode();
if (!streetMode) {
llBalance.setVisibility(View.VISIBLE);
tvStreetView.setVisibility(View.INVISIBLE);
} else {
llBalance.setVisibility(View.INVISIBLE);
tvStreetView.setVisibility(View.VISIBLE);
}
setStreetModeBackground(streetMode);
}
void showUnconfirmed(double unconfirmedAmount) {
@ -537,4 +545,13 @@ public class WalletFragment extends Fragment
}
}
public void setStreetModeBackground(boolean enable) {
//TODO figure out why gunther disappears on return from send although he is still set
if (enable) {
if (streetGunther == null)
streetGunther = ContextCompat.getDrawable(getContext(), R.drawable.ic_gunther_streetmode);
ivStreetGunther.setImageDrawable(streetGunther);
} else
ivStreetGunther.setImageDrawable(null);
}
}

View File

@ -20,9 +20,12 @@ package com.m2049r.xmrwallet;
import android.app.Application;
import android.content.Context;
import android.content.res.Configuration;
import android.os.Build;
import com.m2049r.xmrwallet.model.NetworkType;
import com.m2049r.xmrwallet.util.DayNightMode;
import com.m2049r.xmrwallet.util.LocaleHelper;
import com.m2049r.xmrwallet.util.NightmodeHelper;
import timber.log.Timber;
@ -34,18 +37,23 @@ public class XmrWalletApplication extends Application {
if (BuildConfig.DEBUG) {
Timber.plant(new Timber.DebugTree());
}
NightmodeHelper.setPreferredNightmode(this);
}
@Override
protected void attachBaseContext(Context context) {
super.attachBaseContext(LocaleHelper.setLocale(context, LocaleHelper.getLocale(context)));
super.attachBaseContext(LocaleHelper.setPreferredLocale(context));
}
@Override
public void onConfigurationChanged(Configuration configuration) {
super.onConfigurationChanged(configuration);
LocaleHelper.updateSystemDefaultLocale(configuration.locale);
LocaleHelper.setLocale(XmrWalletApplication.this, LocaleHelper.getLocale(XmrWalletApplication.this));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
LocaleHelper.updateSystemDefaultLocale(configuration.getLocales().get(0));
} else {
LocaleHelper.updateSystemDefaultLocale(configuration.locale);
}
LocaleHelper.setPreferredLocale(this);
}
static public NetworkType getNetworkType() {
@ -54,7 +62,7 @@ public class XmrWalletApplication extends Application {
return NetworkType.NetworkType_Mainnet;
case "stagenet":
return NetworkType.NetworkType_Stagenet;
case "testnet":
case "devnet": // flavors cannot start with "test"
return NetworkType.NetworkType_Testnet;
default:
throw new IllegalStateException("unknown net flavor " + BuildConfig.FLAVOR_net);

View File

@ -16,26 +16,25 @@
package com.m2049r.xmrwallet.dialog;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.m2049r.xmrwallet.BuildConfig;
import com.m2049r.xmrwallet.R;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import timber.log.Timber;
@ -63,15 +62,15 @@ public class AboutFragment extends DialogFragment {
((TextView) view.findViewById(R.id.tvHelp)).setText(Html.fromHtml(getLicencesHtml()));
((TextView) view.findViewById(R.id.tvVersion)).setText(getString(R.string.about_version, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE));
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(view);
builder.setNegativeButton(R.string.about_close,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity())
.setView(view)
.setNegativeButton(R.string.about_close,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
return builder.create();
}

View File

@ -16,19 +16,20 @@
package com.m2049r.xmrwallet.dialog;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.m2049r.xmrwallet.R;
public class CreditsFragment extends DialogFragment {
@ -54,16 +55,15 @@ public class CreditsFragment extends DialogFragment {
((TextView) view.findViewById(R.id.tvCredits)).setText(Html.fromHtml(getString(R.string.credits_text)));
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(view);
builder.setNegativeButton(R.string.about_close,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity())
.setView(view)
.setNegativeButton(R.string.about_close,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
return builder.create();
}
}

View File

@ -16,19 +16,20 @@
package com.m2049r.xmrwallet.dialog;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.m2049r.xmrwallet.R;
public class HelpFragment extends DialogFragment {
@ -65,15 +66,15 @@ public class HelpFragment extends DialogFragment {
if (helpId > 0)
((TextView) view.findViewById(R.id.tvHelp)).setText(Html.fromHtml(getString(helpId)));
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(view);
builder.setNegativeButton(R.string.help_ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity())
.setView(view)
.setNegativeButton(R.string.help_ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
return builder.create();
}
}

View File

@ -16,19 +16,20 @@
package com.m2049r.xmrwallet.dialog;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.m2049r.xmrwallet.R;
public class PrivacyFragment extends DialogFragment {
@ -54,15 +55,15 @@ public class PrivacyFragment extends DialogFragment {
((TextView) view.findViewById(R.id.tvCredits)).setText(Html.fromHtml(getString(R.string.privacy_policy)));
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(view);
builder.setNegativeButton(R.string.about_close,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity())
.setView(view)
.setNegativeButton(R.string.about_close,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
return builder.create();
}
}

View File

@ -17,7 +17,6 @@ package com.m2049r.xmrwallet.dialog;
* limitations under the License.
*/
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
@ -26,6 +25,8 @@ import android.view.WindowManager;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import com.m2049r.xmrwallet.BuildConfig;
import com.m2049r.xmrwallet.R;
import com.m2049r.xmrwallet.util.Helper;

View File

@ -19,8 +19,6 @@ package com.m2049r.xmrwallet.fragment.send;
import android.content.Context;
import android.nfc.NfcManager;
import android.os.Bundle;
import android.support.design.widget.TextInputLayout;
import android.support.v7.widget.CardView;
import android.text.Editable;
import android.text.Html;
import android.text.InputType;
@ -36,6 +34,7 @@ import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.textfield.TextInputLayout;
import com.m2049r.xmrwallet.R;
import com.m2049r.xmrwallet.data.BarcodeData;
import com.m2049r.xmrwallet.data.TxData;
@ -86,7 +85,7 @@ public class SendAddressWizardFragment extends SendWizardFragment {
private EditText etDummy;
private TextInputLayout etAddress;
private TextInputLayout etNotes;
private CardView cvScan;
private View cvScan;
private View tvPaymentIdIntegrated;
private TextView tvXmrTo;
private View llXmrTo;

View File

@ -18,6 +18,12 @@ package com.m2049r.xmrwallet.fragment.send;
import android.os.Bundle;
import android.os.Handler;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.textfield.TextInputLayout;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -25,6 +31,8 @@ import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import com.m2049r.xmrwallet.R;
import com.m2049r.xmrwallet.data.TxData;
import com.m2049r.xmrwallet.data.TxDataBtc;

View File

@ -80,12 +80,10 @@ public class SendBtcSuccessWizardFragment extends SendWizardFragment {
R.layout.fragment_send_btc_success, container, false);
bCopyTxId = view.findViewById(R.id.bCopyTxId);
bCopyTxId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Helper.clipBoardCopy(getActivity(), getString(R.string.label_send_txid), tvTxId.getText().toString());
Toast.makeText(getActivity(), getString(R.string.message_copy_txid), Toast.LENGTH_SHORT).show();
}
bCopyTxId.setEnabled(false);
bCopyTxId.setOnClickListener(v -> {
Helper.clipBoardCopy(getActivity(), getString(R.string.label_send_txid), tvTxId.getText().toString());
Toast.makeText(getActivity(), getString(R.string.message_copy_txid), Toast.LENGTH_SHORT).show();
});
tvXmrToAmount = view.findViewById(R.id.tvXmrToAmount);
@ -143,7 +141,6 @@ public class SendBtcSuccessWizardFragment extends SendWizardFragment {
if (committedTx != null) {
tvTxId.setText(committedTx.txId);
bCopyTxId.setEnabled(true);
bCopyTxId.setImageResource(R.drawable.ic_content_copy_black_24dp);
tvTxAmount.setText(getString(R.string.send_amount, Helper.getDisplayAmount(committedTx.amount)));
tvTxFee.setText(getString(R.string.send_fee, Helper.getDisplayAmount(committedTx.fee)));
if (btcData != null) {

View File

@ -17,12 +17,18 @@
package com.m2049r.xmrwallet.fragment.send;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.textfield.TextInputLayout;
import com.m2049r.xmrwallet.R;
import com.m2049r.xmrwallet.data.TxData;
import com.m2049r.xmrwallet.data.UserNotes;
@ -147,7 +153,7 @@ public class SendConfirmWizardFragment extends SendWizardFragment implements Sen
}
private void showAlert(String title, String message) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(getActivity());
builder.setCancelable(true).
setTitle(title).
setMessage(message).

View File

@ -18,13 +18,7 @@ package com.m2049r.xmrwallet.fragment.send;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.text.InputType;
import android.util.SparseArray;
import android.view.LayoutInflater;
@ -35,6 +29,12 @@ import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.m2049r.xmrwallet.OnBackPressedListener;
import com.m2049r.xmrwallet.OnUriScannedListener;
import com.m2049r.xmrwallet.R;
@ -93,8 +93,6 @@ public class SendFragment extends Fragment
}
private EditText etDummy;
private Drawable arrowPrev;
private Drawable arrowNext;
private View llNavBar;
private DotBar dotBar;
@ -125,8 +123,6 @@ public class SendFragment extends Fragment
dotBar = view.findViewById(R.id.dotBar);
bPrev = view.findViewById(R.id.bPrev);
bNext = view.findViewById(R.id.bNext);
arrowPrev = getResources().getDrawable(R.drawable.ic_navigate_prev_white_24dp);
arrowNext = getResources().getDrawable(R.drawable.ic_navigate_next_white_24dp);
ViewGroup llNotice = view.findViewById(R.id.llNotice);
Notice.showAll(llNotice, ".*_send");
@ -214,16 +210,16 @@ public class SendFragment extends Fragment
CharSequence nextLabel = pagerAdapter.getPageTitle(position + 1);
bNext.setText(nextLabel);
if (nextLabel != null) {
bNext.setCompoundDrawablesWithIntrinsicBounds(null, null, arrowNext, null);
bNext.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_navigate_next_white_24dp, 0);
} else {
bNext.setCompoundDrawables(null, null, null, null);
bNext.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
}
CharSequence prevLabel = pagerAdapter.getPageTitle(position - 1);
bPrev.setText(prevLabel);
if (prevLabel != null) {
bPrev.setCompoundDrawablesWithIntrinsicBounds(arrowPrev, null, null, null);
bPrev.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_navigate_prev_white_24dp, 0, 0, 0);
} else {
bPrev.setCompoundDrawables(null, null, null, null);
bPrev.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
}
}

View File

@ -76,12 +76,10 @@ public class SendSuccessWizardFragment extends SendWizardFragment {
R.layout.fragment_send_success, container, false);
bCopyTxId = view.findViewById(R.id.bCopyTxId);
bCopyTxId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Helper.clipBoardCopy(getActivity(), getString(R.string.label_send_txid), tvTxId.getText().toString());
Toast.makeText(getActivity(), getString(R.string.message_copy_txid), Toast.LENGTH_SHORT).show();
}
bCopyTxId.setEnabled(false);
bCopyTxId.setOnClickListener(v -> {
Helper.clipBoardCopy(getActivity(), getString(R.string.label_send_txid), tvTxId.getText().toString());
Toast.makeText(getActivity(), getString(R.string.message_copy_txid), Toast.LENGTH_SHORT).show();
});
tvTxId = view.findViewById(R.id.tvTxId);
@ -116,7 +114,6 @@ public class SendSuccessWizardFragment extends SendWizardFragment {
if (committedTx != null) {
tvTxId.setText(committedTx.txId);
bCopyTxId.setEnabled(true);
bCopyTxId.setImageResource(R.drawable.ic_content_copy_black_24dp);
if (sendListener.getActivityCallback().isStreetMode()
&& (sendListener.getTxData().getAmount() == Wallet.SWEEP_ALL)) {

View File

@ -16,7 +16,7 @@
package com.m2049r.xmrwallet.fragment.send;
import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import com.m2049r.xmrwallet.layout.SpendViewPager;

View File

@ -17,8 +17,8 @@
package com.m2049r.xmrwallet.layout;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -170,16 +170,16 @@ public class NodeInfoAdapter extends RecyclerView.Adapter<NodeInfoAdapter.ViewHo
if (nodeInfo.isValid()) {
final double ping = nodeInfo.getResponseTime();
if (ping < NodeInfo.PING_GOOD) {
return R.drawable.ic_signal_wifi_4_bar_black_24dp;
return R.drawable.ic_signal_wifi_4_bar_24dp;
} else if (ping < NodeInfo.PING_MEDIUM) {
return R.drawable.ic_signal_wifi_3_bar_black_24dp;
return R.drawable.ic_signal_wifi_3_bar_24dp;
} else if (ping < NodeInfo.PING_BAD) {
return R.drawable.ic_signal_wifi_2_bar_black_24dp;
return R.drawable.ic_signal_wifi_2_bar_24dp;
} else {
return R.drawable.ic_signal_wifi_1_bar_black_24dp;
return R.drawable.ic_signal_wifi_1_bar_24dp;
}
} else {
return R.drawable.ic_signal_wifi_off_black_24dp;
return R.drawable.ic_signal_wifi_off_24dp;
}
}

View File

@ -17,7 +17,7 @@
package com.m2049r.xmrwallet.layout;
import android.content.Context;
import android.support.v4.view.ViewPager;
import androidx.viewpager.widget.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

View File

@ -17,8 +17,8 @@
package com.m2049r.xmrwallet.layout;
import android.content.Context;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -30,7 +30,6 @@ import com.m2049r.xmrwallet.model.TransactionInfo;
import com.m2049r.xmrwallet.util.Helper;
import com.m2049r.xmrwallet.data.UserNotes;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
@ -61,8 +60,8 @@ public class TransactionInfoAdapter extends RecyclerView.Adapter<TransactionInfo
public TransactionInfoAdapter(Context context, OnInteractionListener listener) {
this.context = context;
inboundColour = ContextCompat.getColor(context, R.color.tx_green);
outboundColour = ContextCompat.getColor(context, R.color.tx_red);
inboundColour = ContextCompat.getColor(context, R.color.tx_plus);
outboundColour = ContextCompat.getColor(context, R.color.tx_minus);
pendingColour = ContextCompat.getColor(context, R.color.tx_pending);
failedColour = ContextCompat.getColor(context, R.color.tx_failed);
infoItems = new ArrayList<>();

View File

@ -17,8 +17,8 @@
package com.m2049r.xmrwallet.layout;
import android.content.Context;
import android.support.v7.widget.PopupMenu;
import android.support.v7.widget.RecyclerView;
import androidx.appcompat.widget.PopupMenu;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;

View File

@ -16,8 +16,8 @@
package com.m2049r.xmrwallet.model;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.m2049r.xmrwallet.data.TxData;

View File

@ -18,14 +18,15 @@ package com.m2049r.xmrwallet.onboarding;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.util.TypedValue;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import com.google.android.material.tabs.TabLayout;
import com.m2049r.xmrwallet.LoginActivity;
import com.m2049r.xmrwallet.R;
import com.m2049r.xmrwallet.util.KeyStoreHelper;
@ -44,7 +45,7 @@ public class OnBoardingActivity extends AppCompatActivity implements OnBoardingA
nextButton = findViewById(R.id.buttonNext);
pager = findViewById(R.id.pager);
pagerAdapter = new OnBoardingAdapter(getApplicationContext(), this);
pagerAdapter = new OnBoardingAdapter(this, this);
pager.setAdapter(pagerAdapter);
int pixels = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 16, getResources().getDisplayMetrics());

View File

@ -18,9 +18,6 @@ package com.m2049r.xmrwallet.onboarding;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.PagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -28,6 +25,10 @@ import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import com.m2049r.xmrwallet.R;
import timber.log.Timber;

View File

@ -18,10 +18,11 @@
package com.m2049r.xmrwallet.onboarding;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
import androidx.viewpager.widget.ViewPager;
public class OnBoardingViewPager extends ViewPager {
public enum SwipeDirection {

View File

@ -31,9 +31,10 @@ import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
import android.os.Process;
import android.support.annotation.Nullable;
import android.support.annotation.RequiresApi;
import android.support.v4.app.NotificationCompat;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.core.app.NotificationCompat;
import com.m2049r.xmrwallet.R;
import com.m2049r.xmrwallet.WalletActivity;
@ -429,7 +430,7 @@ public class WalletService extends Service {
@Override
protected void attachBaseContext(Context context) {
super.attachBaseContext(LocaleHelper.setLocale(context, LocaleHelper.getLocale(context)));
super.attachBaseContext(LocaleHelper.setPreferredLocale(context));
}
public class WalletServiceBinder extends Binder {

View File

@ -18,7 +18,7 @@
package com.m2049r.xmrwallet.service.exchange.api;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
public interface ExchangeApi {

View File

@ -18,8 +18,8 @@
package com.m2049r.xmrwallet.service.exchange.ecb;
import android.support.annotation.NonNull;
import android.support.annotation.VisibleForTesting;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;

View File

@ -16,7 +16,7 @@
package com.m2049r.xmrwallet.service.exchange.ecb;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;

View File

@ -16,8 +16,8 @@
package com.m2049r.xmrwallet.service.exchange.kraken;
import android.support.annotation.NonNull;
import android.support.annotation.VisibleForTesting;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;

View File

@ -16,7 +16,7 @@
package com.m2049r.xmrwallet.service.exchange.kraken;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeException;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;

View File

@ -18,7 +18,7 @@
package com.m2049r.xmrwallet.service.exchange.krakenEcb;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;

View File

@ -16,12 +16,10 @@
package com.m2049r.xmrwallet.service.exchange.krakenEcb;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;
import java.util.Date;
class ExchangeRateImpl implements ExchangeRate {
private final String baseCurrency;
private final String quoteCurrency;

View File

@ -0,0 +1,13 @@
package com.m2049r.xmrwallet.util;
import android.content.Context;
import android.content.res.TypedArray;
import com.m2049r.xmrwallet.R;
public class ColorHelper {
static public int getThemedResourceId(Context ctx, int attrId) {
TypedArray styledAttributes = ctx.getTheme().obtainStyledAttributes(R.style.MyMaterialTheme, new int[]{attrId});
return styledAttributes.getResourceId(0, 0);
}
}

View File

@ -0,0 +1,29 @@
package com.m2049r.xmrwallet.util;
import androidx.appcompat.app.AppCompatDelegate;
public enum DayNightMode {
// order must match R.array.daynight_themes
AUTO(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM),
DAY(AppCompatDelegate.MODE_NIGHT_NO),
NIGHT(AppCompatDelegate.MODE_NIGHT_YES),
UNKNOWN(AppCompatDelegate.MODE_NIGHT_UNSPECIFIED);
final private int nightMode;
DayNightMode(int nightMode) {
this.nightMode = nightMode;
}
public int getNightMode() {
return nightMode;
}
static public DayNightMode getValue(int nightMode) {
for (DayNightMode mode : DayNightMode.values()) {
if (mode.nightMode == nightMode)
return mode;
}
return UNKNOWN;
}
}

View File

@ -18,7 +18,6 @@ package com.m2049r.xmrwallet.util;
import android.Manifest;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.ClipData;
import android.content.ClipDescription;
@ -38,8 +37,6 @@ import android.os.Build;
import android.os.CancellationSignal;
import android.os.Environment;
import android.os.StrictMode;
import android.support.design.widget.TextInputLayout;
import android.support.v4.content.ContextCompat;
import android.system.ErrnoException;
import android.system.Os;
import android.text.Editable;
@ -55,6 +52,11 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.textfield.TextInputLayout;
import com.m2049r.xmrwallet.BuildConfig;
import com.m2049r.xmrwallet.R;
import com.m2049r.xmrwallet.model.NetworkType;
@ -424,7 +426,7 @@ public class Helper {
LayoutInflater li = LayoutInflater.from(context);
final View promptsView = li.inflate(R.layout.prompt_password, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
AlertDialog.Builder alertDialogBuilder = new MaterialAlertDialogBuilder(context);
alertDialogBuilder.setView(promptsView);
final TextInputLayout etPassword = promptsView.findViewById(R.id.etPassword);

View File

@ -24,7 +24,7 @@ import android.os.Build;
import android.security.KeyPairGeneratorSpec;
import android.security.keystore.KeyGenParameterSpec;
import android.security.keystore.KeyProperties;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import android.util.Base64;
import java.io.IOException;

View File

@ -8,7 +8,6 @@ import android.preference.PreferenceManager;
import com.m2049r.xmrwallet.R;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Locale;
public class LocaleHelper {
@ -17,6 +16,7 @@ public class LocaleHelper {
public static ArrayList<Locale> getAvailableLocales(Context context) {
ArrayList<Locale> locales = new ArrayList<>();
// R.string.available_locales gets generated in build.gradle by enumerating values-* folders
String[] availableLocales = context.getString(R.string.available_locales).split(",");
for (String localeName : availableLocales) {
@ -36,20 +36,22 @@ public class LocaleHelper {
return displayName;
}
public static String getLocale(Context context) {
return getPreferredLocale(context);
public static Context setPreferredLocale(Context context) {
return setLocale(context, getPreferredLanguageTag(context));
}
public static Context setLocale(Context context, String locale) {
setPreferredLocale(context, locale);
public static Context setAndSaveLocale(Context context, String langaugeTag) {
savePreferredLangaugeTag(context, langaugeTag);
return setLocale(context, langaugeTag);
}
private static Context setLocale(Context context, String languageTag) {
Locale locale = (languageTag.isEmpty()) ? SYSTEM_DEFAULT_LOCALE : Locale.forLanguageTag(languageTag);
Locale.setDefault(locale);
Locale newLocale = (locale.isEmpty()) ? SYSTEM_DEFAULT_LOCALE : Locale.forLanguageTag(locale);
Configuration configuration = context.getResources().getConfiguration();
Locale.setDefault(newLocale);
configuration.setLocale(newLocale);
configuration.setLayoutDirection(newLocale);
configuration.setLocale(locale);
configuration.setLayoutDirection(locale);
return context.createConfigurationContext(configuration);
}
@ -68,13 +70,18 @@ public class LocaleHelper {
+ str.substring(firstCodePointLen);
}
private static String getPreferredLocale(Context context) {
public static Locale getPreferredLocale(Context context) {
String languageTag = getPreferredLanguageTag(context);
return languageTag.isEmpty() ? SYSTEM_DEFAULT_LOCALE : Locale.forLanguageTag(languageTag);
}
public static String getPreferredLanguageTag(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context)
.getString(PREFERRED_LOCALE_KEY, "");
}
@SuppressLint("ApplySharedPref")
private static void setPreferredLocale(Context context, String locale) {
private static void savePreferredLangaugeTag(Context context, String locale) {
PreferenceManager.getDefaultSharedPreferences(context).edit()
.putString(PREFERRED_LOCALE_KEY, locale).commit();
}

View File

@ -0,0 +1,32 @@
package com.m2049r.xmrwallet.util;
import android.content.Context;
import android.preference.PreferenceManager;
import androidx.appcompat.app.AppCompatDelegate;
public class NightmodeHelper {
private static final String PREFERRED_NIGHTMODE_KEY = "preferred_nightmode";
public static DayNightMode getPreferredNightmode(Context context) {
return DayNightMode.valueOf(PreferenceManager.getDefaultSharedPreferences(context)
.getString(PREFERRED_NIGHTMODE_KEY, "UNKNOWN"));
}
public static void setPreferredNightmode(Context context) {
final DayNightMode mode = DayNightMode.valueOf(PreferenceManager.getDefaultSharedPreferences(context)
.getString(PREFERRED_NIGHTMODE_KEY, "UNKNOWN"));
if (mode == DayNightMode.UNKNOWN) setAndSavePreferredNightmode(context, DayNightMode.AUTO);
setNightMode(mode);
}
public static void setAndSavePreferredNightmode(Context context, DayNightMode mode) {
PreferenceManager.getDefaultSharedPreferences(context).edit()
.putString(PREFERRED_NIGHTMODE_KEY, mode.name()).apply();
setNightMode(mode);
}
public static void setNightMode(DayNightMode mode) {
AppCompatDelegate.setDefaultNightMode(mode.getNightMode());
}
}

View File

@ -18,8 +18,8 @@ package com.m2049r.xmrwallet.util;
import android.content.Context;
import android.content.SharedPreferences;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View File

@ -19,7 +19,7 @@
package com.m2049r.xmrwallet.widget;
import android.content.Context;
import android.support.design.widget.TextInputLayout;
import com.google.android.material.textfield.TextInputLayout;
import android.util.AttributeSet;
import android.widget.EditText;

View File

@ -20,7 +20,7 @@ package com.m2049r.xmrwallet.widget;
import android.content.Context;
import android.graphics.Rect;
import android.support.v7.widget.AppCompatAutoCompleteTextView;
import androidx.appcompat.widget.AppCompatAutoCompleteTextView;
import android.util.AttributeSet;
public class DropDownEditText extends AppCompatAutoCompleteTextView {

View File

@ -28,13 +28,13 @@ import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.Spinner;
import android.widget.TextView;
import com.google.android.material.textfield.TextInputLayout;
import com.m2049r.xmrwallet.R;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
@ -51,7 +51,7 @@ import timber.log.Timber;
public class ExchangeEditText extends LinearLayout {
private double getEnteredAmount() {
String enteredAmount = etAmountA.getText().toString();
String enteredAmount = etAmountA.getEditText().getText().toString();
try {
return Double.parseDouble(enteredAmount);
} catch (NumberFormatException ex) {
@ -98,7 +98,7 @@ public class ExchangeEditText extends LinearLayout {
public void setAmount(String nativeAmount) {
if (nativeAmount != null) {
etAmountA.setText(nativeAmount);
etAmountA.getEditText().setText(nativeAmount);
tvAmountB.setText(null);
if (sCurrencyA.getSelectedItemPosition() != 0)
sCurrencyA.setSelection(0, true); // set native currency & trigger exchange
@ -116,12 +116,12 @@ public class ExchangeEditText extends LinearLayout {
public String getNativeAmount() {
if (isExchangeInProgress()) return null;
if (getCurrencyA() == 0)
return getCleanAmountString(etAmountA.getText().toString());
return getCleanAmountString(etAmountA.getEditText().getText().toString());
else
return getCleanAmountString(tvAmountB.getText().toString());
}
EditText etAmountA;
TextInputLayout etAmountA;
TextView tvAmountB;
Spinner sCurrencyA;
Spinner sCurrencyB;
@ -188,7 +188,7 @@ public class ExchangeEditText extends LinearLayout {
protected void onFinishInflate() {
super.onFinishInflate();
etAmountA = findViewById(R.id.etAmountA);
etAmountA.addTextChangedListener(new TextWatcher() {
etAmountA.getEditText().addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
doExchange();
@ -223,7 +223,7 @@ public class ExchangeEditText extends LinearLayout {
// make progress circle gray
pbExchange.getIndeterminateDrawable().
setColorFilter(getResources().getColor(R.color.trafficGray),
setColorFilter(getResources().getColor(R.color.progress_circle),
android.graphics.PorterDuff.Mode.MULTIPLY);
sCurrencyA.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@ -363,7 +363,7 @@ public class ExchangeEditText extends LinearLayout {
boolean prepareExchange() {
Timber.d("prepareExchange()");
String enteredAmount = etAmountA.getText().toString();
String enteredAmount = etAmountA.getEditText().getText().toString();
if (!enteredAmount.isEmpty()) {
String cleanAmount = getCleanAmountString(enteredAmount);
Timber.d("cleanAmount = %s", cleanAmount);

View File

@ -21,7 +21,6 @@ package com.m2049r.xmrwallet.widget;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.support.design.widget.TextInputLayout;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.AttributeSet;
@ -37,11 +36,13 @@ import android.widget.ProgressBar;
import android.widget.Spinner;
import android.widget.TextView;
import com.google.android.material.textfield.TextInputLayout;
import com.m2049r.xmrwallet.R;
import com.m2049r.xmrwallet.model.Wallet;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;
import com.m2049r.xmrwallet.util.ColorHelper;
import com.m2049r.xmrwallet.util.Helper;
import java.util.ArrayList;
@ -178,10 +179,9 @@ public class ExchangeView extends LinearLayout {
// make progress circle gray
pbExchange.getIndeterminateDrawable().
setColorFilter(getResources().getColor(R.color.trafficGray),
setColorFilter(getResources().getColor(ColorHelper.getThemedResourceId(getContext(), R.attr.colorPrimaryVariant)),
android.graphics.PorterDuff.Mode.MULTIPLY);
sCurrencyA.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
@ -203,12 +203,6 @@ public class ExchangeView extends LinearLayout {
if (position != 0) { // if not XMR, select XMR on other
sCurrencyA.setSelection(0, true);
}
parentView.post(new Runnable() {
@Override
public void run() {
((TextView) parentView.getChildAt(0)).setTextColor(getResources().getColor(R.color.moneroGray));
}
});
doExchange();
}

View File

@ -23,15 +23,16 @@ import android.os.Build;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import com.google.android.material.appbar.MaterialToolbar;
import com.m2049r.xmrwallet.R;
import timber.log.Timber;
public class Toolbar extends android.support.v7.widget.Toolbar {
public class Toolbar extends MaterialToolbar {
public interface OnButtonListener {
void onButton(int type);
}
@ -45,7 +46,7 @@ public class Toolbar extends android.support.v7.widget.Toolbar {
ImageView toolbarImage;
TextView toolbarTitle;
TextView toolbarSubtitle;
Button bCredits;
ImageButton bCredits;
public Toolbar(Context context) {
super(context);
@ -125,33 +126,27 @@ public class Toolbar extends android.support.v7.widget.Toolbar {
switch (type) {
case BUTTON_BACK:
Timber.d("BUTTON_BACK");
bCredits.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_arrow_back_white_24dp, 0, 0, 0);
bCredits.setText(null);
bCredits.setImageResource(R.drawable.ic_arrow_back_white_24dp);
bCredits.setVisibility(View.VISIBLE);
break;
case BUTTON_CLOSE:
Timber.d("BUTTON_CLOSE");
bCredits.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_close_white_24dp, 0, 0, 0);
bCredits.setText(R.string.label_close);
bCredits.setImageResource(R.drawable.ic_close_white_24dp);
bCredits.setVisibility(View.VISIBLE);
break;
case BUTTON_CREDITS:
Timber.d("BUTTON_CREDITS");
bCredits.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_favorite_white_24dp, 0, 0, 0);
bCredits.setText(R.string.label_credits);
bCredits.setImageResource(R.drawable.ic_favorite_white_24dp);
bCredits.setVisibility(View.VISIBLE);
break;
case BUTTON_CANCEL:
Timber.d("BUTTON_CANCEL");
bCredits.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_close_white_24dp, 0, 0, 0);
bCredits.setText(R.string.label_cancel);
bCredits.setImageResource(R.drawable.ic_close_white_24dp);
bCredits.setVisibility(View.VISIBLE);
break;
case BUTTON_NONE:
default:
Timber.d("BUTTON_NONE");
bCredits.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
bCredits.setText(null);
bCredits.setVisibility(View.INVISIBLE);
}
buttonType = type;

View File

@ -16,7 +16,7 @@
package com.m2049r.xmrwallet.xmrto.api;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
public interface XmrToApi {

View File

@ -16,7 +16,7 @@
package com.m2049r.xmrwallet.xmrto.network;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import com.m2049r.xmrwallet.xmrto.api.CreateOrder;
import com.m2049r.xmrwallet.xmrto.api.XmrToCallback;

View File

@ -16,7 +16,7 @@
package com.m2049r.xmrwallet.xmrto.network;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import com.m2049r.xmrwallet.xmrto.api.XmrToCallback;
import com.m2049r.xmrwallet.xmrto.api.QueryOrderParameters;

View File

@ -16,7 +16,7 @@
package com.m2049r.xmrwallet.xmrto.network;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import com.m2049r.xmrwallet.xmrto.api.XmrToCallback;
import com.m2049r.xmrwallet.xmrto.api.QueryOrderStatus;

View File

@ -16,7 +16,7 @@
package com.m2049r.xmrwallet.xmrto.network;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import org.json.JSONObject;

View File

@ -16,7 +16,7 @@
package com.m2049r.xmrwallet.xmrto.network;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import com.m2049r.xmrwallet.util.OkHttpHelper;
import com.m2049r.xmrwallet.xmrto.XmrToError;

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="?attr/colorSecondary" android:state_enabled="true"/>
<item android:color="?attr/colorOnBackground"/>
</selector>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,72 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="774dp"
android:height="774dp"
android:viewportWidth="774"
android:viewportHeight="774">
<path
android:pathData="M595.29,577.34c-9.38,-25.79 -17.49,-52 -27,-77.78 -9.19,-25 -19,-49.82 -27.29,-75.15 -8.62,-26.23 -17.93,-52.24 -27.3,-78.21 -8.09,-22.43 -18.19,-44.59 -33.22,-63.28a223,223 0,0 0,-48.06 -44.33c-34.44,-23.42 -79.24,-35.76 -120.51,-26.7 -20.09,4.41 -39.15,14.47 -53.06,29.76C243.68,258.34 232,279.29 223.34,300c-18.75,45 -21.34,94.88 -13.26,142.5 4.52,26.73 12,52.85 19.94,78.73 7.86,25.65 16.56,50.84 27.47,75.38 10.75,24.17 23.89,46.71 38,69s27.69,44.76 42,66.86Q343.64,742 350,751.4c2.58,-1.38 5.16,-2.81 7.73,-4.24 -11.52,-17.58 -22.59,-35.45 -33.46,-53.44 -13.27,-22 -27.42,-43.5 -39.94,-65.91 -25.39,-45.44 -41.14,-95.93 -54.26,-146.08 -12.66,-48.42 -18.28,-98.42 -5.85,-147.53a211.69,211.69 0,0 1,25.54 -59.8c11.24,-18.07 24.06,-34 43.55,-43.5 36.69,-17.83 82.18,-10 117,8.56 18.45,9.84 34.55,23.17 48.86,38.34 15.7,16.65 27.24,35.37 36,56.51 9.9,24 18.06,48.89 26.46,73.45 8.49,24.82 16.9,49.59 26.12,74.16 18.45,49.18 33.46,99.53 54.69,147.65 0.76,1.73 1.54,3.45 2.32,5.18a12.83,12.83 0,0 0,1.38 -0.11,39.15 39.15,0 0,0 9.41,-5.86c0.12,-0.18 0.22,-0.36 0.33,-0.55Q604.66,603.14 595.29,577.34Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M443,535.05c-9.66,-14.47 -21.79,-27.21 -31.84,-41.43 -10.47,-14.83 -20,-30.6 -26.62,-47.55 -7.14,-18.3 -9.86,-37.42 -11,-56.94 -0.78,-13.7 0,-28.5 -3.77,-41.85 -3,-10.56 -10.65,-19.25 -22.53,-17.91 -12.71,1.44 -20.3,14.87 -24.9,25.38 -6.76,15.46 -8.81,31.15 -7.33,47.95 1.65,18.69 6.22,36.94 12.29,54.66 3.42,10 7.2,19.82 11.25,29.55s8.53,19.33 11.74,29.37c3,9.45 4,18.9 4.94,28.71 0.75,7.39 2.78,17.49 -3,23.42 -0.47,0.49 0.17,1.42 0.76,1 9.13,-7 6.65,-22.64 6,-32.59 -1.15,-17.94 -7.66,-34.25 -14.15,-50.79 -6.71,-17.09 -13.51,-34.11 -18.15,-51.91 -4.73,-18.15 -8.42,-38 -5.61,-56.71 1.91,-12.71 7.55,-28.31 16.85,-37.53 4.52,-4.47 10.76,-6.77 16.94,-4.31 5.31,2.11 8,7.5 9.47,12.7 3.6,13 2.5,27.56 3.26,40.88 1,18.45 3.34,36.79 9.59,54.27 6.4,17.89 15.86,34.49 26.79,50 10.74,15.24 22.42,31.16 36.23,43.76C441.68,538.41 444.16,536.76 443,535.05Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M424.89,538.23c-10.41,-8.27 -19.14,-16.77 -25.73,-28.46 -3.49,-6.19 -6.3,-12.72 -9.62,-19 -3.5,-6.59 -7.23,-13 -10.51,-19.76 -7.34,-15 -10.51,-31.46 -12.52,-48a224.34,224.34 0,0 1,-1.86 -24.84c-0.09,-8.38 0.27,-16.77 -0.2,-25.15s-1.77,-23.83 -13.14,-24.78 -16.51,14.32 -18.67,22.85c-7.16,28.24 -0.62,60 9.17,86.81 5.92,16.24 14.6,31.24 19.91,47.73 5.49,17 9.18,35.23 9.74,53.16a0.63,0.63 0,0 0,0.7 0.55,0.64 0.64,0 0,0 0.55,-0.55 173.37,173.37 0,0 0,-18.64 -82.25c-13.07,-26.27 -21.37,-55.43 -19.77,-85a92.86,92.86 0,0 1,3.55 -22.09c1.66,-5.49 4.37,-13.78 10.31,-16.09 13.33,-5.19 11.89,25.67 11.87,31.86 -0.12,29.29 1.57,60.74 14.6,87.53 3.37,6.94 7.26,13.61 10.9,20.41 3.56,6.65 6.55,13.59 10.38,20.1 6.53,11.11 15.39,21.56 26.81,27.82C424.42,542 426.54,539.55 424.89,538.23Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M390.13,523.12c-3.83,-9.46 -8.8,-18.37 -13.47,-27.43 -5.16,-10 -9.92,-20.29 -14.33,-30.65a282.84,282.84 0,0 1,-11.21 -32.67c-3,-10.33 -6.19,-20.71 -7.34,-31.45 -1,-9.14 -1.76,-22.56 4.35,-30.32 1.48,-1.88 2.09,-1.78 3.15,0.45a19.83,19.83 0,0 1,1.51 8.47c0,6 -1.57,12.18 -2.9,18a0.74,0.74 0,1 0,1.43 0.39c3.34,-8.48 7,-18 4.06,-27.15 -1.35,-4.25 -4.78,-8 -9,-4.39 -5,4.23 -6.44,12.42 -7.15,18.49 -1.19,10.21 0.09,20.46 2.39,30.41A328.17,328.17 0,0 0,363 478.36c4.44,9.7 9.19,19.2 14.12,28.65 5.09,9.75 10.05,19.7 12.62,30.46 1.1,4.61 2,9.3 1.18,14 -0.23,1.39 -1.74,9.19 -3.69,9 -1.42,-0.14 -2.63,-4.83 -3,-5.87a45.5,45.5 0,0 1,-1.63 -9.26c-0.5,-5.42 0.09,-11 -1.19,-16.27a1.51,1.51 0,0 0,-2.9 0c-2,8.35 -1.16,19.22 1.39,27.42 1.27,4.11 4.85,11.69 10.26,7.92 4.29,-3 5.51,-10.34 5.87,-15.12C396.68,540.57 393.35,531.08 390.13,523.12Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M428.88,498.85c-8.56,-13.8 -18.39,-26.51 -25.68,-41.12 -7.37,-14.77 -13.18,-30.43 -14.77,-47 -2.64,-27.47 4.25,-59.19 -14.31,-82.6 -7.55,-9.52 -20.55,-12.09 -32,-9.49 -12.73,2.88 -22.95,12.59 -29.13,23.77 -7.28,13.2 -9.05,28 -10,42.77 -0.51,7.77 -3,15.42 -2.07,23.25a163.68,163.68 0,0 0,5.22 25.09c5.29,19 13.2,37.26 19.69,55.87 3.39,9.73 7.1,19.44 9.3,29.52s2.57,20.63 6.19,30.25c0.57,1.52 3,1.4 3,-0.4 -0.06,-16.17 -4,-32.89 -9.13,-48.13 -5.58,-16.43 -11.58,-32.68 -17.58,-49 -2.75,-7.46 -5.21,-15 -7.21,-22.72s-4.44,-16.4 -4.4,-24.49c0,-7.45 2,-15 2.57,-22.5a116.16,116.16 0,0 1,3.37 -22.48c3.62,-13.31 11.17,-26.14 23.67,-32.82 11.24,-6 27.13,-5.32 35.19,5.52 17,22.88 9.89,53.54 12.79,79.92 1.79,16.28 7.17,32.17 14.71,46.68s17.2,29.69 28.93,41.37a1.12,1.12 0,0 0,1.53 -0.36A1.1,1.1 0,0 0,428.88 498.85Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M304.52,455.92c-4,-13.63 -5.61,-27.79 -7.6,-41.8 -0.8,-5.64 -2.6,-10.21 -6.69,-14.22 -4.57,-4.49 -6.78,-8.4 -6.94,-15 -0.29,-11.85 3.53,-24.52 7.28,-35.66 3.65,-10.86 9.25,-20.56 15,-30.39a68.62,68.62 0,0 1,8.7 -12.47c2,-2.1 7.48,-7.17 10.78,-4.37 3.68,3.13 -5.42,14.12 -7.32,16.65 -6.39,8.54 -12.2,17 -16.23,27a122.57,122.57 0,0 0,-8.5 40.58c0,0.53 0.84,0.66 0.93,0.13 4.07,-13.45 6.37,-27.47 11.95,-40.44 4.16,-9.67 10.22,-17.67 16.45,-26 3.4,-4.56 9.9,-12.46 7.86,-18.7 -2.55,-7.86 -13.38,-4.05 -17.67,-0.35 -7.41,6.4 -11.85,16.09 -16.74,24.39 -6.95,11.78 -11.31,24.56 -14.59,37.78 -2.61,10.52 -6.21,24.92 0,34.85 1.42,2.25 3.41,3.91 5.28,5.76a16.57,16.57 0,0 1,4.83 9c1.45,7.07 1.92,14.48 3.11,21.62 1.51,9.06 3.14,18.21 6.15,26.91 2.62,7.56 6.24,14.71 9.52,22a117.26,117.26 0,0 1,8.12 25.46c1.71,8.58 2.48,17.39 5.43,25.66 0.71,2 4.09,1.85 3.91,-0.53a177.26,177.26 0,0 0,-7.48 -40C315.86,480.75 308.39,469.05 304.52,455.92Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M456,454.71c-2.94,-8.71 -7.81,-16.54 -12.33,-24.48 -4.68,-8.2 -8.39,-16.39 -9.9,-25.77 -1.29,-8 -2.41,-17.12 -7.44,-23.78 -2.87,-3.81 -7.42,-5.36 -10.45,-0.82 -2.83,4.26 -3.36,10.53 -3.49,15.51 -0.47,19.29 6.36,40.89 16.45,57.24 4.21,6.82 13.87,16.75 11,25.59 -1.69,5.15 -6.19,-0.55 -8.11,-2.77a80.81,80.81 0,0 1,-8.95 -13.12,131.51 131.51,0 0,1 -17.28,-57.64c-1.13,-20.62 0.5,-41.91 -7,-61.59 -3.71,-9.76 -9.35,-19.35 -16.93,-26.61A36.51,36.51 0,0 0,368.31 308c-5.38,-1.86 -11.12,-2.31 -16.53,-4 -3.93,-1.26 -7.26,-3 -9.16,-6.76 -1.59,-3.15 -2.35,-6.66 -3.9,-9.83 -3.42,-7 -11.64,-11.75 -18,-5.4a0.73,0.73 0,0 0,0.07 1,0.72 0.72,0 0,0 0.79,0.1c10.93,-5.53 13.8,7.83 16.67,15.06 2.23,5.59 6.68,8.48 12.23,10.4 9.67,3.35 18.87,3.74 26.66,11.24 7,6.74 12.22,15.79 15.69,24.82 7.26,18.92 5.75,39.41 6.78,59.26A135.67,135.67 0,0 0,413.3 456,105.58 105.58,0 0,0 427,478.25c3.28,3.95 9.21,10.49 14.75,6.33 4.75,-3.57 4.2,-11.35 2.41,-16.27 -3,-8.21 -9.23,-14.74 -13.18,-22.44 -8.17,-16 -15.13,-35.81 -13.15,-54a27.17,27.17 0,0 1,1.71 -7.76c1.58,-3.64 2.91,-0.19 4.3,2.58 3.89,7.76 3.87,16.75 5.93,25 4.64,18.6 19.34,32.81 23,51.77 1.55,8 2.7,16.6 0.79,24.59 -2.16,9.07 -8.58,14.89 -17.14,18.09 -3.19,1.2 -1.8,6.37 1.42,5.15 14.65,-5.55 22.1,-17.22 21.93,-32.78A78.83,78.83 0,0 0,456 454.71Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M358.69,290.32c-8.36,-2.65 -12.15,-13.7 -17.89,-19.65 -7.71,-8 -17.73,-8.7 -26.49,-1.91 -8.54,6.63 -13,16.76 -17.82,26.14 -5.72,11.18 -13.16,21.4 -18.62,32.71 -9.22,19.12 -19.23,42.13 -14.72,63.78 2.29,11 10.44,19 13.74,29.51 1.88,6 2,12.42 2.73,18.59a83.79,83.79 0,0 0,4.5 20.56c4.71,12.41 12.69,23.39 15.92,36.38 2.66,10.69 2.73,24.55 10.42,33.1 1.35,1.5 4.29,-0.07 3.51,-2 -3.69,-9.41 -5.75,-18.7 -7.84,-28.57 -2.25,-10.6 -6.94,-19.81 -11.81,-29.41a88.23,88.23 0,0 1,-7.08 -17.33c-1.68,-6.35 -2.22,-12.89 -2.94,-19.4 -0.59,-5.39 -1.1,-10.8 -3.12,-15.88a90.79,90.79 0,0 0,-6.7 -12.53A46.77,46.77 0,0 1,268 373.54c1.38,-11.38 5.44,-22.43 9.94,-32.91a242.7,242.7 0,0 1,15.73 -29.69c5.56,-9.21 9.72,-19.23 15.45,-28.31 3.57,-5.64 8.83,-12 15.73,-13.39 6.22,-1.23 11.42,3 15.15,7.46 4.43,5.32 10.37,15.89 18.49,15.18a0.79,0.79 0,0 0,0.75 -0.84A0.81,0.81 0,0 0,358.69 290.32Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M297.64,518.14c-1.25,-3.28 -3.41,-6 -5.06,-9.1a82.66,82.66 0,0 1,-5.07 -12c-2.64,-7.65 -4.6,-15.51 -6.9,-23.27 -2.54,-8.58 -5.19,-16.95 -6.54,-25.84 -1.56,-10.19 -2.56,-20.63 -3.59,-30.89 -0.1,-1 -1.58,-1 -1.54,0 0.49,10.22 0,20.4 0.94,30.63 0.9,9.7 3.36,18.77 5.82,28.15 2.17,8.29 4.12,16.63 7,24.71 2.43,6.77 5.46,15.89 11.63,20.1C295.9,521.73 298.34,520 297.64,518.14Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M418.65,363.31c-2.4,-17.5 -12.15,-32.56 -22.54,-46.41a94,94 0,0 0,-12.95 -14.73c-3.82,-3.36 -8.54,-7 -13.94,-6.35a1,1 0,0 0,0 2c5,0.1 9.65,6.09 12.69,9.55a168.24,168.24 0,0 1,10.74 14.05c9.07,12.88 18,26.75 20.09,42.7a3,3 0,0 0,6 -0.17A3.4,3.4 0,0 0,418.65 363.31Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M450.43,406.58c-0.43,-2.25 -0.27,-4.52 -0.8,-6.8s-1.16,-4.36 -1.77,-6.52c-1.07,-3.8 -2.19,-7.6 -3.31,-11.39 -2.08,-7.06 -4.25,-14.1 -6.42,-21.14 -4.05,-13.16 -8.5,-26.3 -15.42,-38.28A98.61,98.61 0,0 0,395 291.57c-10.94,-8 -23.55,-15.88 -36.27,-20.61 -0.82,-0.3 -1.32,0.82 -0.8,1.38 8.88,9.65 21.8,15.38 32.32,23a96.75,96.75 0,0 1,28.2 32.11c6.51,11.89 10.57,24.84 14.47,37.76 2.17,7.19 4.37,14.38 6.45,21.6 1,3.53 2,7.06 3.1,10.56 1.22,3.86 3,7 4.67,10.59C448,410 450.8,408.47 450.43,406.58Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M472.66,471a90.48,90.48 0,0 0,-7 -25.72c-4.18,-9.37 -12,-16.84 -15.55,-26.39 -0.65,-1.75 -3.41,-1.07 -2.84,0.78 2.47,8.06 7.46,14.85 11.17,22.33a88.59,88.59 0,0 1,8.42 27.66c1.31,9.52 2,19.71 -1.38,28.9 -2.76,7.56 -8.83,13.82 -10.8,21.66 -0.72,2.88 3.46,4.86 4.93,2.08 3.81,-7.3 8.57,-14.57 11.39,-22.3C474.27,490.77 473.88,480.54 472.66,471Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M485.07,449c-2.52,-9.83 -6.61,-19.17 -10.83,-28.37 -4.51,-9.83 -8.84,-19.39 -11.55,-29.9s-4.46,-21.1 -7.25,-31.51a154.26,154.26 0,0 0,-32.81 -60.72c-0.49,-0.56 -1.26,0.15 -1,0.76 8.67,18.1 19.83,34.7 25.87,54.05 5.75,18.44 7.2,38.1 14.68,56S479.37,444.2 481,463.84s-0.83,42 -9,60.05a56.57,56.57 0,0 1,-18.64 22.38c-8.39,6 -17.37,8.49 -27.52,9.23a2.61,2.61 0,0 0,0 5.22c17,1.95 34.26,-9.83 44.19,-22.72 12.36,-16 16.34,-37.87 17.45,-57.64C488,469.75 487.72,459.37 485.07,449Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M287.29,290.18c-14.1,18.4 -27.62,39.15 -33.45,61.82a99,99 0,0 0,-3.11 30.18,87.8 87.8,0 0,0 1.57,13.13c0.68,3.29 1.62,8.2 5.07,9.69a1.79,1.79 0,0 0,2.65 -1.52c0.06,-3.57 -2,-7.31 -2.67,-10.83A87.1,87.1 0,0 1,256 379.86a94.94,94.94 0,0 1,3.84 -30.11c3.06,-10.77 8.13,-20.53 13.55,-30.27 5.29,-9.48 11.27,-18.59 14.54,-29C288.1,290 287.52,289.88 287.29,290.18Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M329.32,552.91c-4.84,-5.82 -12.83,-9.57 -19.07,-13.77a149.86,149.86 0,0 1,-20.07 -15.49c-12.5,-11.93 -18.12,-27.46 -22.31,-43.84a137,137 0,0 1,-4.5 -25.25c-0.52,-8 -0.67,-16 -2,-23.87 -1.43,-8.27 -4.83,-15.31 -9.1,-22.45 -5,-8.37 -8.78,-16.57 -9.48,-26.43 -0.73,-10.29 1,-20.58 3.7,-30.48 2.49,-9.23 6.24,-18.44 7,-28 0.08,-1.09 -1.45,-1.14 -1.79,-0.24 -6.25,16.78 -12.8,34.94 -13.56,53a56.52,56.52 0,0 0,4.75 26c3.75,8.22 9.25,15.45 11.58,24.3s2.41,17.75 2.92,26.69a138.92,138.92 0,0 0,4 25.48c4,16.28 9,32.54 20.39,45.3 6.12,6.85 13.5,12.54 21,17.73 4.11,2.84 8.31,5.54 12.5,8.27 3.86,2.52 7.48,5.33 11.82,7C329.45,557.63 330.63,554.48 329.32,552.91Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M411.88,559.77c-15.54,11 -36.18,15.5 -54.94,14.09a87.83,87.83 0,0 1,-27.51 -6.39c-5,-2.08 -10.48,-4.15 -14.66,-7.63 -3.32,-2.76 -6.1,-7.44 -10.62,-8.18a3,3 0,0 0,-2.9 5c7.2,8.29 16.48,13.45 26.53,17.56a88.14,88.14 0,0 0,29.83 6.51,83.69 83.69,0 0,0 29.76,-4.08 64.81,64.81 0,0 0,13.78 -6.38c4.47,-2.78 7.74,-6 11.42,-9.59C413,560.22 412.42,559.39 411.88,559.77Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M496.72,499.41a0.8,0.8 0,0 0,-1.59 0c-3.11,24.18 -18.63,45.85 -38.68,59.11a93.78,93.78 0,0 1,-16.17 8.66c-4.31,1.78 -8.74,3.12 -13,5.12s-8.34,4.25 -12.7,5.94c-3.69,1.43 -7.37,1.24 -11,2.35a2.71,2.71 0,0 0,-1.6 3.92c5.15,7.54 19.79,-1.44 25.45,-4.39 11,-5.72 22.51,-9.51 32.71,-16.79C479.64,549.4 498.82,524.68 496.72,499.41Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M401.35,275c-6.83,-4.7 -12.3,-11 -19,-15.85 -6.3,-4.58 -13.68,-7.58 -21.05,-10 -13.5,-4.38 -27,-6.56 -41.14,-4.4 -13.15,2 -26.08,7.63 -35.49,17.19 -5.37,5.45 -10.05,11.92 -14.49,18.13a71.91,71.91 0,0 0,-10.86 21.24c-0.6,2 2.43,3.32 3.37,1.43a120.45,120.45 0,0 1,13.09 -20.31c4.25,-5.42 8.43,-11.19 13.28,-16.1 8.9,-9 21.21,-14 33.64,-15.64 13.2,-1.73 25.94,0.71 38.48,4.79 6.92,2.25 13.76,4.86 19.87,8.88 6.39,4.2 12,9.49 19,12.75a1.25,1.25 0,0 0,1.3 -2.11Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M755.43,276.23c-33.74,10.51 -64.13,30.28 -98.23,39.52 -1.75,-17.53 2.86,-35.32 -1.9,-52.63a3.71,3.71 0,0 0,-3.52 -2.68c-18.33,1.44 -34.28,12.95 -50.1,21.25 -16.49,8.65 -35.43,12.15 -51.36,21.89 0.13,1.31 0.24,2.62 0.34,3.92q0.29,1.67 0.54,3.33h0c1.78,11.59 2.59,23.36 3.4,35.12h0c0.35,5.06 0.71,10.12 1.14,15.16a4.67,4.67 0,0 0,3.85 -0.2c21.28,-10 39.42,-25.08 59,-37.79 1.61,5.35 1.8,11.09 2.22,16.66 0.55,7.19 1.55,14.06 4.43,20.72 1,2.21 4.53,3 6.43,1.69A415.86,415.86 0,0 1,668 340.27q5.64,-4.39 11.4,-8.63 6.54,-4.8 13.23,-9.43l0.59,-0.41q6.67,-4.6 13.46,-9.05l0.76,-0.5q6.67,-4.37 13.46,-8.59l1,-0.65q2.07,-1.29 4.16,-2.56l5.33,-3.26 2.37,-1.44q3.6,-2.17 7.22,-4.33h0l1.69,-1q7.79,-5.87 15.64,-11.59a2.39,2.39 0,0 0,-2.11 -2.64A2.48,2.48 0,0 0,755.43 276.23ZM630.6,345.1q-0.14,-0.89 -0.24,-1.77a5.29,5.29 0,0 0,0.58 0.58C630.83,344.31 630.71,344.71 630.6,345.1ZM555.6,310.4a2.47,2.47 0,0 0,-0.36 -0.11l0.46,-0.27a1.8,1.8 0,0 1,-0.07 0.38ZM564.23,347.26a6.41,6.41 0,0 0,1.31 0.14l0.16,0.22 -2.61,1.51a4,4 0,0 0,1.17 -1.87ZM651.13,317.96v0.23h-0.07ZM636,293.1l0.32,-0.61 0.22,-0.21q-0.27,1.47 -0.57,2.94a4.09,4.09 0,0 0,-0.15 -0.85A4.53,4.53 0,0 0,636 293.1ZM560.67,350.1a4.85,4.85 0,0 0,1 -0.16l-1,0.54a0.74,0.74 0,0 0,0 -0.39ZM631.59,350.23a3.89,3.89 0,0 0,0.53 0.46l-0.37,0.24c-0.06,-0.24 -0.11,-0.48 -0.16,-0.71Z"
android:fillColor="#ff1a80"/>
<path
android:pathData="M194,538.15c-0.5,-1.21 -1,-2.44 -1.46,-3.66l-0.36,-0.91c-1.18,-3 -2.31,-6.06 -3.45,-9.07q-0.85,-2.24 -1.72,-4.46c-1.65,-4.19 -3.32,-8.37 -5,-12.52l-4.28,-8.61a4.66,4.66 0,0 0,-0.47 0.3c-29.93,22.34 -64.79,37.16 -93.61,61.1a3.42,3.42 0,0 0,-0.53 4.11c2.13,3.27 4.13,6.67 6.11,10.09A5,5 0,0 0,90 577.6a125.13,125.13 0,0 0,6.75 10.71A162.66,162.66 0,0 0,108 604.15v0.19a14.34,14.34 0,0 1,-3.19 6.31c-3.35,4.32 -7.41,8.07 -10.94,12.25 -6.48,7.7 -13.12,15.3 -19.63,23l-1.86,1.6c-7.6,6.7 -14.83,13.8 -22,20.94L46,674.12c-5.86,7.59 -11.7,15.31 -18,22.6 -2.57,3 -5.2,5.88 -7.95,8.68a3.08,3.08 0,0 0,0.46 2.25c1.8,-1.16 3.59,-2.34 5.38,-3.52h0l0.79,-0.52 3.52,-2.36L33.48,699q1.94,-1.32 3.86,-2.65l2.89,-2 1.17,-0.81h0c0.63,-0.43 1.25,-0.88 1.87,-1.32l1.61,-1.12 2,-1.43L50,687.54l2.59,-1.85L61,679.62l1.18,-0.86 9.62,-7 9,-6.51 14.42,-12.11c20,-16.74 40.14,-33.3 61.06,-48.89l1.51,-1.13a4.35,4.35 0,0 0,0 -2.15c-1.73,-6.42 -6.45,-11.27 -11.14,-15.73 -3.83,-3.64 -8.7,-7.39 -11.16,-12.27 16.89,-8.25 34.85,-15 49.77,-26.64 2.76,-2.15 6,-4.73 8.16,-7.77A1.46,1.46 0,0 0,194 538.15ZM124.15,600.57 L125.15,601.64 124.74,601.98 123.85,600.49ZM148.27,599.31 L147.83,599.46c-0.72,-1.17 -1.38,-2.39 -2,-3.58a23.06,23.06 0,0 1,2.46 3.43Z"
android:fillColor="#ff1a80"/>
<path
android:pathData="M228.62,219.16c-7.78,-6.19 -16.62,-10.91 -25.44,-15.45 -3,-1.53 -6.11,-2.74 -9,-4.44 -1.64,-1 -2.41,-2.34 -3.87,-3.46 1.65,-2.75 2.06,-6.62 3.3,-9.5a85.24,85.24 0,0 1,7.34 -13c5.1,-7.79 10.86,-15.13 15.76,-23 2.17,-3.52 3.93,-7.23 5.92,-10.85 1.26,-2.28 2.93,-4.69 3,-7.4a6.85,6.85 0,0 0,-0.8 -3.38l-7.2,-2.26L213.49,125c-24.37,-7.76 -48.58,-16 -72.4,-25.36 -4.14,-1.62 -8.25,-3.35 -12.36,-5.1h0c-9.74,-4.16 -19.44,-8.46 -29.45,-11.83C95.22,81.35 91.07,80 87,78.6v0.21c6.06,4.7 12,9.52 17.94,14.4l1.81,1.48q9.38,7.77 18.59,15.72l4,3.47c7.45,6.53 14.81,13.2 22.56,19.34 3.36,2.68 6.73,5.35 10.16,7.94 1.4,1.06 2.8,2.13 4.25,3.12 0.48,0.33 2.54,1.39 1.88,1.24a2.88,2.88 0,0 1,2.39 2.71c2.19,1.26 4.37,2.53 6.53,3.83q-11.21,14.41 -22.23,29 -5.88,9.8 -12.36,19.2l-1.4,2c-1.24,1.76 -2.49,3.52 -3.76,5.26 -0.7,0.94 -1.37,1.9 -2.08,2.84a2.61,2.61 0,0 1,-0.52 0.53q13.91,14.28 28.3,28c8.76,8.35 21,15.72 27.34,26.44a13.59,13.59 0,0 0,1 2.28c0.39,-0.49 0.77,-1 1.16,-1.49h0c0.1,-0.13 0.2,-0.27 0.31,-0.4l3.92,-5.11h0l3.81,-5A447.69,447.69 0,0 1,228.62 219.16ZM189.93,195.4a8,8 0,0 0,-0.82 -0.93C190.07,194.08 190.12,194.67 189.93,195.4ZM197.2,248.22 L197.72,247.63L196.8,249c0.14,-0.25 0.27,-0.52 0.4,-0.78ZM217.71,224.52a5.67,5.67 0,0 0,0.18 -1,2.7 2.7,0 0,0 0.94,-1.38l0.7,0.48c-0.6,0.65 -1.21,1.27 -1.82,1.9ZM135.59,118.09c1.51,1 3,1.87 4.57,2.78 0.75,0.55 1.48,1.11 2.22,1.66h0C140.1,121.07 137.84,119.6 135.59,118.09ZM192.36,254.74a17.92,17.92 0,0 0,2.82 -3.08c-0.75,1.28 -1.47,2.57 -2.12,3.88Z"
android:fillColor="#ff1a80"/>
<path
android:pathData="M486.2,151.26l1.2,-2.51c1.4,-2.9 2.8,-5.78 4.23,-8.66 0.45,-0.91 0.89,-1.82 1.34,-2.72q2.41,-4.83 4.89,-9.63 3.45,-6.7 7,-13.37a10.53,10.53 0,0 0,-1.3 -1.67c-7.51,-7.89 -20,-7.87 -30.48,-9.32 6,-14.72 14.94,-28.63 22.68,-42.36 7,-12.42 16.86,-25.44 17.35,-40.25a3.78,3.78 0,0 0,-3 -3.86c-1.55,1.39 -3.11,2.76 -4.67,4.09l-1.16,1a600.63,600.63 0,0 1,-54 52.55c-6.15,5.93 -12.51,11.64 -19.22,17 -2,2 -4,4 -5.95,6a3.9,3.9 0,0 0,1.1 3.69c5.58,5.72 12.88,8.42 19.29,12.94 2.46,1.73 6.23,4.63 6.41,7.92 0.15,2.67 -2,5.57 -3.13,7.82 -4.23,8.14 -7.69,16.7 -11.68,25 -4.44,9.18 -9.71,18.12 -13.74,27.48a2.69,2.69 0,0 0,-1.87 2c4.39,2.54 8.74,5.18 13.06,7.85h0q5.25,3.25 10.47,6.54l2.5,1.57q5.34,3 10.57,6.23a3.2,3.2 0,0 0,1 -0.34c3.33,-6.95 6.91,-13.81 10.56,-20.63q2.78,-5.18 5.56,-10.31 2.43,-5.55 5,-11.06c0.37,-0.83 0.75,-1.66 1.13,-2.49Q483.7,156.5 486.2,151.26Z"
android:fillColor="#ff1a80"/>
</vector>

View File

@ -0,0 +1,231 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="774dp"
android:height="774dp"
android:viewportWidth="774"
android:viewportHeight="774">
<path
android:pathData="M456.65,484.7c-0.75,-7.69 -4.75,-14.85 -12.11,-16.94a16.79,16.79 0,0 0,-13.36 1.75c-6.83,3 -11.81,10.07 -12.85,17.53a11.39,11.39 0,0 0,-0.56 2.51c-0.38,5 1.21,8.58 3.87,11 6.36,8.2 19.95,10.58 28.21,3.75a16.77,16.77 0,0 0,3.95 -4.87,7.65 7.65,0 0,0 2.28,-5.88 27.1,27.1 0,0 0,0.68 -5A17.11,17.11 0,0 0,456.65 484.7ZM433.83,490.44a7.15,7.15 0,0 1,-0.62 1.61,4.92 4.92,0 0,1 -0.28,0.45l-0.1,0.11a3.27,3.27 0,0 1,-0.24 0.27l-0.12,0.1a1.93,1.93 0,0 1,-0.27 0.3l-0.11,0.08a2.58,2.58 0,0 1,-0.32 0.18l-0.1,0 -0.37,0.14h-0.07a3.34,3.34 0,0 1,-0.43 0.1,3.91 3.91,0 0,1 -0.48,0.05h-0.55a3.77,3.77 0,0 1,-2.6 -1.29,3.39 3.39,0 0,1 -0.34,-0.5c-0.1,-0.18 -0.22,-0.35 -0.33,-0.53a3.72,3.72 0,0 1,-0.92 -2.42,5.27 5.27,0 0,1 0.7,-2.31c0.07,-0.18 0.15,-0.35 0.23,-0.52l0.16,-0.29 0.12,-0.18a1.55,1.55 0,0 1,0.24 -0.33l0.08,-0.09a3.22,3.22 0,0 1,0.32 -0.32,2.39 2.39,0 0,1 0.45,-0.31 4.32,4.32 0,0 1,1.8 -0.49,2.81 2.81,0 0,1 0.58,0 3.38,3.38 0,0 1,1.42 0.6l0.07,0.05a4.88,4.88 0,0 1,0.53 0.49l0.07,0.08a6.61,6.61 0,0 1,0.44 0.6,3.26 3.26,0 0,1 0.72,0.85c0.12,0.29 0.25,0.58 0.37,0.88A6,6 0,0 1,433.83 490.44ZM450.11,487.35v0.32a3.23,3.23 0,0 1,-0.12 1.16,2.67 2.67,0 0,1 0,0.4 2.78,2.78 0,0 1,-0.11 0.5c0,0.13 -0.08,0.25 -0.13,0.37v0.09a3.46,3.46 0,0 1,-0.52 0.82l-0.15,0.18a10.62,10.62 0,0 1,-3.17 1.73h-0.53l0.08,0a3.05,3.05 0,0 1,-0.54 -0.08,3.44 3.44,0 0,1 -2.38,-2.37 1.59,1.59 0,0 1,-0.21 -0.41l-0.06,-0.18a1.42,1.42 0,0 1,0 -0.22,2 2,0 0,1 -0.06,-0.6 1.89,1.89 0,0 1,0.13 -0.66,15.51 15.51,0 0,1 0.76,-2.27 1.81,1.81 0,0 1,0.33 -0.5,3.25 3.25,0 0,1 0.92,-1 3.4,3.4 0,0 1,2 -0.64,3.22 3.22,0 0,1 0.81,0.11 4.56,4.56 0,0 1,1.77 1.05l0.12,0.11a3.5,3.5 0,0 1,0.38 0.39,4 4,0 0,1 0.37,0.54s0.05,0.09 0.07,0.13a3.13,3.13 0,0 1,0.24 0.6c0,0.06 0,0.12 0.05,0.18Z"
android:fillColor="#ff1a80"/>
<path
android:pathData="M141.13,722.25c-0.08,-0.13 -0.15,-0.26 -0.22,-0.4v0.1a3.75,3.75 0,0 0,-1.28 -1.4,3.22 3.22,0 0,0 -3,-0.17 3.36,3.36 0,0 0,-1.8 4.4c0.06,0.13 0.12,0.25 0.19,0.37a6.2,6.2 0,0 0,0.87 1.1,3.31 3.31,0 0,0 5.19,-4Z"
android:fillColor="#ff1a80"/>
<path
android:pathData="M136.77,733.31a3.43,3.43 0,0 0,-1.69 -0.71,3.36 3.36,0 0,0 -2.28,0.43 4.29,4.29 0,0 0,-1.21 1.19,3.61 3.61,0 0,0 0.48,4.43 3.75,3.75 0,0 0,3.49 0.92,3.69 3.69,0 0,0 2.5,-2.5A3.62,3.62 0,0 0,136.77 733.31Z"
android:fillColor="#ff1a80"/>
<path
android:pathData="M362.14,573.91a3.57,3.57 0,0 0,-4.19 0.41c-2.48,2.28 -4.86,4.67 -7.18,7.11h0a23.81,23.81 0,0 0,-9.18 -6.35c0.22,-0.21 0.43,-0.41 0.67,-0.61 1.22,-1 2.37,-1.92 3.51,-2.92 2.3,-2 -0.79,-6.11 -3.26,-4.26s-6,3.65 -7.64,6.43a20.15,20.15 0,0 0,-8.75 1.71c-5.21,2.29 -9.52,6.24 -14.26,9.32 -4.15,2.7 -8.42,5.25 -12.13,8.56 -0.39,0.35 -0.77,0.71 -1.15,1.08 -5.1,3.69 -8.68,8.66 -8.55,15.63a15.45,15.45 0,0 0,5.25 11.92c-2.35,3.26 -4.78,6.47 -7.33,9.59A163.57,163.57 0,0 1,272.46 648c-4.5,4.15 -9.37,8 -15,10.52 -6.72,3 -14,3 -21.18,2.76 -15.1,-0.54 -29.8,-2.11 -44.69,1.45a77.27,77.27 0,0 0,-31 15.15c-9.85,8 -18.56,19.82 -21.74,32.25a4.41,4.41 0,0 0,3 5.31l0.26,0.09a3.67,3.67 0,0 0,3.71 -1c2,-1.85 2.81,-5.1 4,-7.44a72.26,72.26 0,0 1,4.53 -7.68,65.58 65.58,0 0,1 11,-12.58c8.47,-7.42 19,-12 30,-14.38 15.37,-3.29 30.59,-0.5 46.09,-0.49 14.7,0 26.45,-5.5 37.27,-15.22A157.6,157.6 0,0 0,296 638.55a106,106 0,0 0,7.14 -9.34,26.63 26.63,0 0,0 8,-0.72 27.81,27.81 0,0 0,7.53 -2.29c5.91,-1.33 11,-4.23 16.16,-7.56a71.75,71.75 0,0 0,17.85 -16.29,14.23 14.23,0 0,0 2,-14.76c3.22,-1.71 5.93,-5.16 8,-8.05l0.56,-0.52a3.07,3.07 0,0 0,0.05 -4.35A3.12,3.12 0,0 0,362.14 573.91ZM323.24,613.07a11.86,11.86 0,0 1,-2.17 3.37c-2.6,3 -6.37,4.44 -10.13,5.27a23.83,23.83 0,0 1,-4.58 0.36,14.61 14.61,0 0,0 0.38,-2.26 31.06,31.06 0,0 1,2.9 -3.28,2.62 2.62,0 0,0 0.58,-3.1A2.49,2.49 0,0 0,310 612a1.78,1.78 0,0 0,-3.09 -1.5,2.64 2.64,0 0,0 -1.26,0.68 43.64,43.64 0,0 0,-4 4.38c-0.32,0.17 -0.61,0.35 -0.9,0.54a9.81,9.81 0,0 1,-2.05 -4.76,11.88 11.88,0 0,1 2.27,-7.79c3.32,-5 10.14,-8.81 16,-6.2A12,12 0,0 1,323.24 613.07ZM345.77,600.72c-3.35,5.18 -8.94,9.31 -13.95,12.75 -0.78,0.57 -1.58,1.1 -2.39,1.63a17.53,17.53 0,0 0,-0.54 -14.08c-3.83,-7.52 -11.46,-9.91 -18.57,-8.46a67.16,67.16 0,0 0,7.3 -5.73c1.28,-1.19 2.48,-2.37 3.68,-3.52l0.75,-0.51c3.45,-2.38 7.08,-4.87 11.45,-3.95 4.12,0.87 7.89,3.93 10.7,6.94C348.32,590.21 349.17,595.47 345.77,600.72Z"
android:fillColor="#ff1a80"/>
<path
android:pathData="M545.77,296.5c-0.37,-5.69 -0.51,-11.39 -0.56,-17.08l-0.09,-1.2c-0.61,-8.89 -0.17,-17.78 0.16,-26.67v-14c0,-10.07 1.14,-20.37 1.08,-30.55v-0.43c-0.13,-0.45 -0.23,-0.91 -0.34,-1.36l-0.18,-0.82c-0.06,-0.28 -0.11,-0.57 -0.16,-0.85s-0.11,-0.61 -0.15,-0.91l-0.09,-0.62c-0.12,-0.91 -0.21,-1.82 -0.27,-2.74h0c-1.34,0 -2.68,0 -4,0.09h0c-17.55,0.46 -35.09,1.86 -52.64,2.38l-2.5,0.06c-2.42,0.06 -4.85,0.11 -7.28,0.12h0c-2.54,2 -5.11,3.89 -7.76,5.72l-0.74,0.63h0c-8.16,6.88 -16,14.13 -23.75,21.5v3.89l-0.06,1.3c-0.32,6.84 -1.12,13.66 -1.92,20.48 -1.23,10.65 -1.91,21.32 -2.46,32 -0.57,11.16 -0.89,22.25 -0.65,33.43 0,2 0.11,4.06 0.16,6.13 0.1,0.37 0.21,0.74 0.32,1.11l-0.29,0.1c0,1.18 0.06,2.37 0.07,3.55 13.74,-1.47 27.56,-1.74 41.36,-2.18a100.51,100.51 0,0 1,10.27 -0.38c1.63,-0.07 3.25,-0.17 4.88,-0.26h0l2.63,-0.14h0.58l0.33,0.06 0.26,0.05h0.12c0.57,-0.42 1.15,-0.82 1.72,-1.23s1.34,-0.94 2,-1.39 1.53,-1 2.31,-1.56 1.55,-1 2.33,-1.5 1.62,-1 2.43,-1.54c8.41,-5.22 17.13,-9.94 25.73,-14.87h0l1,-0.6c1.14,-0.66 2.29,-1.32 3.42,-2l0.07,-0.07c1,-0.61 2.09,-1.21 3.13,-1.84C546,300.46 545.9,298.49 545.77,296.5ZM484.61,206.88c10.81,-0.46 21.68,-0.73 32.49,-0.93q6.6,-0.12 13.25,-0.17c-2.92,1.91 -5.75,4 -8.46,6.14a136.35,136.35 0,0 0,-13.71 12.15c-0.11,-0.18 -0.2,-0.36 -0.31,-0.53a7.48,7.48 0,0 1,-1.88 0.65,2 2,0 0,1 -0.62,0.47 1.35,1.35 0,0 1,-0.32 0.11h-0.16a1.82,1.82 0,0 1,-0.57 0l-0.49,0.06a4.73,4.73 0,0 1,-0.75 0L503,224.83a1.14,1.14 0,0 1,-0.32 -0.07h-0.09c-6.2,0.29 -12.41,0.21 -18.61,0.24s-12.36,0.07 -18.5,0.65a76.66,76.66 0,0 0,-10.13 1.41c4.34,-3.15 9.14,-5.89 13.09,-9.11C473.65,213.81 478.69,209.88 484.61,206.88ZM477,323.23c-3.4,0.68 -6.77,1.49 -10.16,2.24 -4.15,0.64 -8.33,1.41 -12.51,1.69q-1,0.06 -1.95,0.06c0.74,-7.16 -0.92,-14.52 -0.75,-21.71q0.36,-15.06 0.75,-30.14c0.21,-8.15 0.78,-16.25 1.57,-24.35 0.24,-2.39 1.28,-8.81 -0.61,-11.81 7.24,-1.08 14.88,0.2 22.13,-0.43 5.56,-0.48 11.11,-1.5 16.6,-2.47 3.93,-0.7 8.23,-0.87 12.27,-1.65a3.44,3.44 0,0 0,-0.17 1c-0.48,16.78 -1.85,33.78 -1.38,50.56 0.19,6.87 0.88,13.71 1,20.57 0.08,3.44 0,6.91 -0.15,10.34 -0.08,1.45 -0.32,3 -0.46,4.55l-2.31,0.27c-7.61,-1.85 -16.6,-0.07 -23.87,1.32ZM529.33,305.69c-4.5,2.83 -9,5.59 -13.5,8.5L513,316c0,-2 -0.09,-4 -0.15,-5.93 -0.29,-11 -0.66,-22.1 -0.45,-33.14 0.18,-9.7 0.62,-19.39 0.07,-29.08A111.89,111.89 0,0 0,511 234c-0.14,-0.76 -0.28,-1.61 -0.45,-2.51l0.8,-0.06a2.5,2.5 0,0 1,-0.26 -1.35,2.36 2.36,0 0,1 0.08,-0.45v-0.08a1.4,1.4 0,0 1,0.16 -0.38l0.06,-0.11a2.43,2.43 0,0 1,0.24 -0.32,0.31 0.31,0 0,1 0.09,-0.11 3.09,3.09 0,0 1,0.43 -0.37c1.2,-0.82 2.38,-1.67 3.56,-2.52l1.36,-1c2.23,-1.64 4.43,-3.31 6.68,-4.93a1.76,1.76 0,0 1,0.8 -0.32l1.07,-0.82a103,103 0,0 1,9.13 -6.19c2,-1.17 4.13,-1.95 5.9,-3.27 0,1.91 0.1,3.8 0.12,5.66 0.08,12.9 -2.53,25.74 -2.9,38.64 -0.39,13.56 -0.82,27.26 0,40.82 0.1,1.73 0.2,3.46 0.29,5.19 -3.07,1.82 -6,4.45 -8.83,6.21Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M487.27,288.76a1.67,1.67 0,0 1,-2 -1.21,2.2 2.2,0 0,1 0,-0.36c0,-5.24 0.63,-10.57 0.32,-15.82 -2.16,4.18 -3.78,8.64 -6.5,12.53a1.5,1.5 0,0 1,-2 0.51,1.44 1.44,0 0,1 -0.5,-0.51c-2.25,-3.86 -3.63,-8.87 -6.78,-12.21 -0.18,5.29 -0.64,10.55 -0.75,15.84a1.29,1.29 0,0 1,-0.94 1.23,23.89 23.89,0 0,1 -8.8,-0.26c5.19,10.39 20.83,14.09 30,6.54a17.77,17.77 0,0 0,4.74 -6.38A55.13,55.13 0,0 0,487.27 288.76Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M483.83,258.48a16.77,16.77 0,0 0,-13.37 1.75c-9.09,4 -14.92,15.25 -12.48,25 0.12,0.48 0.27,0.94 0.42,1.4a43.66,43.66 0,0 0,8 -0.16c0,-5.91 0.48,-11.82 0.52,-17.73a1.43,1.43 0,0 1,1.45 -1.42,1.46 1.46,0 0,1 0.7,0.18c4.58,2.95 6.41,8.1 8.78,12.77 2.68,-4.65 4.33,-9.84 7.33,-14.32 0.67,-1 2.53,-1 2.79,0.37 1.21,6.36 0.69,12.73 0.53,19.14 2.2,-0.12 4.4,0 6.61,-0.12C498,274.88 494.36,261.47 483.83,258.48Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M507.09,416.58v-0.43a35.23,35.23 0,0 1,-1.2 -7.29l-4,0.08a0.11,0.11 0,0 0,0 0.05c-17,0.44 -34,1.77 -51,2.32h0c-1.54,0.06 -3.08,0.1 -4.61,0.14 -2.27,0.05 -4.54,0.1 -6.82,0.11h-0.06q-1.91,1.5 -3.84,2.92t-3.92,2.79l-0.74,0.63h0c-8.16,6.88 -16,14.13 -23.75,21.5 0,0.81 0,1.63 0,2.44 0,0.39 0,0.79 0,1.18l-0.09,2.18c-0.35,6.64 -1.13,13.26 -1.89,19.87 -1.24,10.66 -1.92,21.32 -2.47,32 -0.57,11.17 -0.88,22.25 -0.65,33.43 0,2 0.11,4.06 0.17,6.13 0.09,0.38 0.2,0.76 0.32,1.14l-0.29,0.09c0,1.17 0.05,2.36 0.07,3.54 1.29,-0.14 2.58,-0.25 3.87,-0.37l1.12,-0.1c1.21,-0.11 2.41,-0.2 3.61,-0.29l0.89,-0.07c10.6,-0.76 21.24,-1 31.87,-1.33a100.51,100.51 0,0 1,10.27 -0.38c2.49,-0.1 5,-0.24 7.46,-0.4h0a3.32,3.32 0,0 1,0.63 0l0.27,0a2.7,2.7 0,0 1,0.39 0.08l1.95,-1.39 0.67,-0.46h0q4.26,-2.94 8.67,-5.65v0c8.26,-5.1 16.81,-9.74 25.24,-14.58v0l2.42,-1.43c0.67,-0.39 1.35,-0.77 2,-1.17l0,0c1.05,-0.62 2.12,-1.23 3.17,-1.87 -0.08,-2 -0.19,-3.95 -0.32,-5.93 -0.37,-5.7 -0.51,-11.39 -0.55,-17.09 0,-0.4 -0.07,-0.8 -0.1,-1.2 -0.61,-8.89 -0.16,-17.78 0.17,-26.67 -0.06,-4.66 0,-9.32 0,-14C506,437.06 507.15,426.76 507.09,416.58ZM464.89,445.25C464.4,462 463,479 463.5,495.81c0.19,6.87 0.89,13.71 1,20.57 0.08,3.45 0.05,6.91 -0.15,10.35 -0.08,1.45 -0.32,3 -0.46,4.53l-2.3,0.28c-7.64,-1.86 -16.61,-0.12 -23.87,1.31 -3.4,0.68 -6.77,1.49 -10.15,2.24 -4.16,0.64 -8.34,1.42 -12.53,1.69 -0.65,0.05 -1.29,0.05 -1.94,0.05 0.74,-7.16 -0.92,-14.55 -0.75,-21.69q0.34,-15.08 0.75,-30.15c0.2,-8.14 0.77,-16.25 1.56,-24.35 0.23,-2.41 1.29,-8.91 -0.66,-11.87 7.24,-1.09 14.89,0.19 22.15,-0.44 5.56,-0.48 11.11,-1.5 16.6,-2.47 4,-0.71 8.3,-0.87 12.33,-1.65A3.63,3.63 0,0 0,464.89 445.25ZM468.64,433.16a7.56,7.56 0,0 1,-1.89 0.65,1.82 1.82,0 0,1 -0.59,0.45h0a2.08,2.08 0,0 1,-1.12 0.21l-0.12,0c-0.32,0 -0.64,0.07 -1,0.08h-0.26l-0.33,-0.07h-0.09c-6.19,0.29 -12.4,0.21 -18.6,0.24s-12.36,0.07 -18.51,0.65a75.85,75.85 0,0 0,-10.24 1.44c4.37,-3.18 9.22,-5.93 13.2,-9.18 5.23,-4.27 10.27,-8.19 16.18,-11.15 10.82,-0.47 21.69,-0.73 32.51,-0.94 4.42,-0.08 8.84,-0.12 13.26,-0.16a98,98 0,0 0,-8.47 6.13A120.26,120.26 0,0 0,469 433.7C468.84,433.52 468.75,433.33 468.64,433.16ZM498.69,463.09c-0.38,13.56 -0.82,27.27 0,40.82 0.05,1.75 0.13,3.48 0.21,5.21 -3.09,1.79 -6.06,4.43 -8.86,6.19 -4.5,2.83 -9,5.59 -13.5,8.5 -0.91,0.59 -1.83,1.2 -2.76,1.82 0,-2 -0.09,-3.93 -0.14,-5.9 -0.3,-11 -0.66,-22.1 -0.46,-33.14 0.18,-9.7 0.62,-19.39 0.07,-29.08a115.81,115.81 0,0 0,-1.48 -13.89c-0.14,-0.74 -0.29,-1.58 -0.45,-2.46l0.66,-0.05a2.4,2.4 0,0 1,-0.27 -1.35l0.07,-0.05a2.42,2.42 0,0 1,0.62 -1.43l0.08,-0.08 0.12,-0.1a2.32,2.32 0,0 1,0.3 -0.22c2.59,-1.76 5.09,-3.64 7.6,-5.52h0c1.33,-1 2.66,-2 4,-3a1.8,1.8 0,0 1,0.81 -0.32l1.07,-0.82a100.76,100.76 0,0 1,9.12 -6.19c2,-1.19 4.22,-2 6,-3.34 0,1.92 0.11,3.84 0.12,5.71C501.67,437.35 499.06,450.19 498.69,463.09Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M350.89,448.88c-0.37,-5.69 -0.5,-11.38 -0.55,-17.08l-0.09,-1.2c-0.62,-8.89 -0.17,-17.78 0.16,-26.67 -0.05,-4.66 0,-9.32 0,-14 0,-10.07 1.15,-20.37 1.09,-30.55L351.5,359c-0.13,-0.45 -0.23,-0.91 -0.34,-1.36l-0.18,-0.82c-0.06,-0.28 -0.11,-0.56 -0.16,-0.85s-0.11,-0.61 -0.15,-0.91 -0.06,-0.42 -0.09,-0.62c-0.12,-0.91 -0.21,-1.82 -0.28,-2.74h0l-4,0.09h0c-17.55,0.46 -35.09,1.86 -52.63,2.38l-2.51,0.06c-2.43,0.06 -4.85,0.11 -7.28,0.12h0q-3.81,3 -7.76,5.72l-0.74,0.63h0c-8.16,6.88 -16,14.13 -23.75,21.5v2.16c0,0.72 0,1.15 0,1.73l-0.06,1.3c-0.32,6.84 -1.13,13.66 -1.92,20.48 -1.23,10.65 -1.91,21.32 -2.46,32 -0.57,11.17 -0.89,22.25 -0.65,33.43 0,2 0.1,4.06 0.16,6.13 0.1,0.37 0.21,0.74 0.32,1.11l-0.29,0.11c0,1.17 0.06,2.36 0.07,3.54 13.74,-1.47 27.55,-1.74 41.36,-2.18a100.51,100.51 0,0 1,10.27 -0.38c1.63,-0.07 3.25,-0.17 4.87,-0.26h0l2.64,-0.14h0.58l0.32,0.06 0.27,0.05h0.12c0.57,-0.42 1.15,-0.82 1.72,-1.23s1.33,-0.94 2,-1.39 1.53,-1 2.31,-1.56l2.32,-1.5c0.81,-0.52 1.62,-1 2.44,-1.54 8.41,-5.22 17.13,-9.94 25.72,-14.87h0l1,-0.62c1.14,-0.65 2.29,-1.31 3.42,-2l0.06,-0.07c1.05,-0.61 2.1,-1.21 3.14,-1.84C351.13,452.79 351,450.82 350.89,448.88ZM289.77,359.25c10.81,-0.46 21.68,-0.73 32.49,-0.93q6.62,-0.12 13.25,-0.16a102.32,102.32 0,0 0,-8.46 6.13,135.38 135.38,0 0,0 -13.72,12.15c-0.1,-0.18 -0.19,-0.36 -0.3,-0.53a7.56,7.56 0,0 1,-1.89 0.65,1.85 1.85,0 0,1 -0.61,0.47 1.42,1.42 0,0 1,-0.33 0.11l-0.15,0.05a2.71,2.71 0,0 1,-0.57 0l-0.5,0.06a3.73,3.73 0,0 1,-0.74 0.05h-0.11l-0.32,-0.08h-0.09c-6.2,0.29 -12.41,0.21 -18.61,0.24s-12.36,0.07 -18.5,0.65a76.66,76.66 0,0 0,-10.13 1.41c4.34,-3.15 9.14,-5.89 13.09,-9.11C278.77,366.14 283.82,362.22 289.77,359.25ZM282.16,475.6c-3.4,0.68 -6.77,1.49 -10.16,2.24 -4.15,0.64 -8.34,1.41 -12.52,1.69 -0.64,0 -1.29,0.06 -1.94,0.06 0.74,-7.16 -0.92,-14.52 -0.75,-21.71q0.36,-15.06 0.75,-30.14c0.21,-8.14 0.78,-16.25 1.57,-24.35 0.23,-2.39 1.27,-8.81 -0.62,-11.8 7.24,-1.09 14.88,0.19 22.14,-0.44 5.55,-0.48 11.11,-1.5 16.6,-2.47 3.93,-0.7 8.23,-0.86 12.27,-1.65a3.44,3.44 0,0 0,-0.17 1c-0.48,16.78 -1.85,33.78 -1.38,50.56 0.19,6.87 0.88,13.71 1,20.57 0.08,3.44 0,6.91 -0.15,10.34 -0.08,1.46 -0.32,3 -0.46,4.55l-2.31,0.27c-7.64,-1.89 -16.63,-0.16 -23.9,1.28ZM334.49,458.06c-4.5,2.83 -9.05,5.59 -13.5,8.5l-2.81,1.85c0,-2 -0.08,-4 -0.14,-5.93 -0.3,-11 -0.66,-22.1 -0.45,-33.14 0.18,-9.7 0.62,-19.39 0.07,-29.08a115.84,115.84 0,0 0,-1.5 -13.89c-0.14,-0.76 -0.28,-1.61 -0.45,-2.51a3.51,3.51 0,0 0,0.79 -0.06,2.5 2.5,0 0,1 -0.26,-1.35 3.58,3.58 0,0 1,0.09 -0.45v-0.08a1.8,1.8 0,0 1,0.16 -0.38l0.06,-0.11a2.43,2.43 0,0 1,0.24 -0.32,0.31 0.31,0 0,1 0.09,-0.11 2.54,2.54 0,0 1,0.43 -0.37c1.2,-0.82 2.38,-1.67 3.55,-2.52l1.37,-1c2.23,-1.64 4.43,-3.31 6.68,-4.93a1.76,1.76 0,0 1,0.8 -0.32l1.07,-0.82a97.55,97.55 0,0 1,9.13 -6.19c2,-1.17 4.13,-2 5.89,-3.27 0.05,1.91 0.11,3.8 0.12,5.66 0.09,12.9 -2.52,25.74 -2.89,38.64 -0.39,13.56 -0.82,27.26 0,40.82 0.1,1.73 0.2,3.46 0.29,5.19 -3.1,1.78 -6.07,4.41 -8.86,6.17Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M292.4,441.09a1.64,1.64 0,0 1,-2 -1.19,1.58 1.58,0 0,1 -0.05,-0.38c0,-5.24 0.63,-10.57 0.31,-15.82 -2.15,4.18 -3.77,8.65 -6.49,12.53a1.5,1.5 0,0 1,-2.05 0.51,1.44 1.44,0 0,1 -0.5,-0.51c-2.25,-3.86 -3.64,-8.87 -6.78,-12.2 -0.18,5.28 -0.64,10.54 -0.75,15.83a1.29,1.29 0,0 1,-0.94 1.23,23.89 23.89,0 0,1 -8.8,-0.26c5.19,10.39 20.83,14.09 30,6.54a17.77,17.77 0,0 0,4.74 -6.38A57.24,57.24 0,0 0,292.4 441.09Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M289,410.81a16.77,16.77 0,0 0,-13.37 1.75c-9.09,4 -14.92,15.25 -12.48,25 0.12,0.48 0.26,0.94 0.42,1.4a43.66,43.66 0,0 0,8 -0.16c0,-5.91 0.48,-11.81 0.51,-17.73a1.43,1.43 0,0 1,1.46 -1.41,1.39 1.39,0 0,1 0.69,0.18c4.59,2.94 6.42,8.09 8.79,12.77 2.68,-4.66 4.32,-9.85 7.33,-14.33 0.67,-1 2.53,-1 2.79,0.37 1.2,6.36 0.69,12.73 0.53,19.14 2.2,-0.12 4.4,0 6.61,-0.12C303.15,427.19 299.49,413.8 289,410.81Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M340.68,263.07c-0.37,-5.69 -0.51,-11.38 -0.55,-17.08 0,-0.4 -0.07,-0.8 -0.09,-1.2 -0.62,-8.89 -0.17,-17.78 0.16,-26.67 -0.05,-4.66 0,-9.32 0,-14 0,-10.07 1.15,-20.37 1.09,-30.55v-0.43c-0.13,-0.45 -0.23,-0.9 -0.34,-1.36 -0.06,-0.27 -0.13,-0.55 -0.18,-0.82s-0.11,-0.56 -0.16,-0.84 -0.11,-0.62 -0.16,-0.92 -0.05,-0.41 -0.08,-0.62c-0.12,-0.91 -0.22,-1.82 -0.28,-2.73h0c-1.34,0 -2.68,0 -4,0.08h0c-17.55,0.46 -35.09,1.86 -52.63,2.38l-2.52,0.06c-2.42,0.06 -4.85,0.11 -7.27,0.12h0q-3.81,3 -7.76,5.72l-0.75,0.63h0c-8.17,6.88 -16,14.13 -23.75,21.5v2.16a15.37,15.37 0,0 1,-0.06 1.73v1.3c-0.32,6.84 -1.13,13.67 -1.92,20.48 -1.23,10.66 -1.92,21.32 -2.46,32 -0.57,11.17 -0.89,22.25 -0.66,33.43 0,2 0.11,4.06 0.17,6.13 0.1,0.37 0.2,0.74 0.32,1.11l-0.29,0.11c0,1.17 0.05,2.36 0.07,3.54 13.74,-1.47 27.55,-1.74 41.36,-2.18a100.51,100.51 0,0 1,10.27 -0.38c1.63,-0.07 3.25,-0.17 4.87,-0.26h0c0.88,0 1.76,-0.08 2.64,-0.14h0.57l0.33,0.05 0.27,0.05L297,295.47l1.73,-1.23 2,-1.39c0.77,-0.53 1.54,-1 2.32,-1.55l2.32,-1.51c0.81,-0.52 1.62,-1 2.44,-1.55 8.41,-5.21 17.13,-9.93 25.72,-14.86h0l1.05,-0.62c1.14,-0.66 2.28,-1.31 3.41,-2l0.06,-0.06c1,-0.62 2.1,-1.22 3.14,-1.85A57.79,57.79 0,0 1,340.68 263.07ZM279.53,173.5c10.81,-0.47 21.68,-0.74 32.49,-0.94q6.62,-0.12 13.25,-0.16a102.32,102.32 0,0 0,-8.46 6.13,135.38 135.38,0 0,0 -13.72,12.15c-0.1,-0.18 -0.19,-0.36 -0.3,-0.53a7.56,7.56 0,0 1,-1.89 0.65,1.85 1.85,0 0,1 -0.61,0.47 1.42,1.42 0,0 1,-0.33 0.11l-0.15,0.05a2.72,2.72 0,0 1,-0.57 0l-0.5,0.06a4.68,4.68 0,0 1,-0.74 0h-0.11l-0.32,-0.08h-0.09c-6.2,0.29 -12.41,0.21 -18.61,0.24s-12.36,0.07 -18.51,0.65a76.51,76.51 0,0 0,-10.12 1.41c4.33,-3.15 9.14,-5.88 13.08,-9.11C268.56,180.38 273.61,176.46 279.53,173.5ZM271.92,289.88c-3.4,0.68 -6.78,1.49 -10.16,2.24 -4.16,0.64 -8.34,1.41 -12.52,1.69 -0.64,0 -1.29,0.06 -1.94,0.06 0.74,-7.16 -0.92,-14.52 -0.75,-21.71q0.36,-15.06 0.75,-30.14c0.2,-8.14 0.77,-16.25 1.57,-24.35 0.23,-2.39 1.27,-8.81 -0.62,-11.8 7.24,-1.09 14.88,0.19 22.13,-0.44 5.56,-0.48 11.12,-1.5 16.6,-2.47 3.94,-0.7 8.24,-0.86 12.28,-1.65a3.44,3.44 0,0 0,-0.17 1c-0.48,16.78 -1.85,33.78 -1.38,50.56 0.19,6.87 0.88,13.71 1,20.57 0.08,3.45 0,6.91 -0.15,10.34 -0.08,1.46 -0.32,3 -0.46,4.55l-2.31,0.28C288.17,286.67 279.19,288.4 271.92,289.88ZM324.25,272.34c-4.5,2.83 -9.05,5.59 -13.5,8.5 -0.92,0.6 -1.86,1.22 -2.81,1.86q-0.06,-3 -0.14,-5.94c-0.3,-11 -0.66,-22.1 -0.45,-33.14 0.18,-9.7 0.61,-19.39 0.06,-29.08a113.82,113.82 0,0 0,-1.49 -13.89c-0.14,-0.76 -0.28,-1.61 -0.45,-2.51l0.79,0a2.55,2.55 0,0 1,-0.26 -1.36,3.58 3.58,0 0,1 0.09,-0.45v-0.08a2.11,2.11 0,0 1,0.17 -0.38,0.14 0.14,0 0,1 0.06,-0.11 1.72,1.72 0,0 1,0.23 -0.32l0.09,-0.11a2.61,2.61 0,0 1,0.44 -0.37c1.2,-0.82 2.38,-1.67 3.55,-2.52l1.36,-1c2.23,-1.65 4.44,-3.32 6.69,-4.94a1.76,1.76 0,0 1,0.8 -0.32l1.07,-0.82a97.55,97.55 0,0 1,9.13 -6.19c2,-1.16 4.13,-2 5.89,-3.27 0,1.91 0.11,3.8 0.12,5.66 0.08,12.9 -2.52,25.74 -2.89,38.64 -0.39,13.56 -0.83,27.27 0,40.82 0.1,1.73 0.21,3.46 0.3,5.19 -3.1,1.72 -6.06,4.38 -8.85,6.14Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M282.18,255.33a1.64,1.64 0,0 1,-2 -1.2,1.5 1.5,0 0,1 -0.05,-0.37c0,-5.24 0.63,-10.57 0.31,-15.82 -2.15,4.18 -3.77,8.65 -6.49,12.53a1.5,1.5 0,0 1,-2.05 0.51,1.44 1.44,0 0,1 -0.5,-0.51c-2.25,-3.86 -3.64,-8.87 -6.78,-12.2 -0.18,5.28 -0.64,10.54 -0.75,15.83a1.29,1.29 0,0 1,-0.94 1.23,24.11 24.11,0 0,1 -8.8,-0.25c5.19,10.38 20.83,14.08 30,6.53a17.63,17.63 0,0 0,4.73 -6.38A57.24,57.24 0,0 0,282.18 255.33Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M278.77,225.05a16.81,16.81 0,0 0,-13.37 1.75c-9.1,4 -14.93,15.25 -12.49,25a11.58,11.58 0,0 0,0.43 1.4,43.66 43.66,0 0,0 8,-0.16c0,-5.91 0.49,-11.81 0.52,-17.73a1.43,1.43 0,0 1,1.46 -1.41,1.39 1.39,0 0,1 0.69,0.18c4.59,2.94 6.42,8.09 8.79,12.77 2.68,-4.66 4.32,-9.85 7.33,-14.33 0.67,-1 2.52,-1 2.79,0.37 1.2,6.36 0.69,12.73 0.52,19.14 2.21,-0.11 4.41,0 6.62,-0.12C292.94,241.43 289.27,228 278.77,225.05Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M741.44,362.51c-0.37,-5.7 -0.51,-11.39 -0.55,-17.09 0,-0.4 -0.07,-0.8 -0.1,-1.2 -0.61,-8.89 -0.16,-17.78 0.17,-26.67 -0.06,-4.66 0,-9.32 0,-14 0,-10.07 1.15,-20.37 1.09,-30.55v-0.43c-0.12,-0.45 -0.23,-0.91 -0.33,-1.36 -0.07,-0.27 -0.13,-0.55 -0.19,-0.82l-0.15,-0.84c-0.06,-0.31 -0.11,-0.62 -0.16,-0.92s-0.06,-0.41 -0.08,-0.61c-0.12,-0.91 -0.22,-1.83 -0.28,-2.74h0l-4,0.08h0c-17.56,0.46 -35.09,1.87 -52.64,2.38l-2.51,0.07c-2.42,0 -4.85,0.1 -7.28,0.12h0c-2.53,2 -5.11,3.89 -7.75,5.71l-0.75,0.63h0c-8.17,6.88 -16,14.13 -23.76,21.5v3.89a10.14,10.14 0,0 1,0 1.3c-0.32,6.84 -1.13,13.67 -1.92,20.48 -1.24,10.66 -1.92,21.32 -2.47,32 -0.57,11.17 -0.88,22.25 -0.65,33.43 0,2 0.11,4.06 0.17,6.13 0.09,0.37 0.2,0.74 0.31,1.11l-0.28,0.11c0,1.17 0,2.36 0.07,3.54 13.73,-1.47 27.55,-1.74 41.36,-2.18a99.24,99.24 0,0 1,10.06 -0.3c1.62,-0.07 3.25,-0.17 4.87,-0.26h0c0.88,0 1.76,-0.08 2.63,-0.14h0.58l0.33,0.05 0.27,0.06h0.11l1.72,-1.22 2,-1.4 2.31,-1.55c0.77,-0.51 1.55,-1 2.33,-1.51s1.62,-1 2.44,-1.54c8.4,-5.22 17.13,-9.94 25.72,-14.87h0l1,-0.62c1.14,-0.65 2.28,-1.31 3.41,-2l0.07,-0.06c1,-0.62 2.1,-1.22 3.13,-1.85C741.68,366.46 741.57,364.49 741.44,362.51ZM680.28,272.93c10.82,-0.47 21.69,-0.73 32.49,-0.94q6.63,-0.12 13.25,-0.16a102.32,102.32 0,0 0,-8.46 6.13,136.35 136.35,0 0,0 -13.71,12.15c-0.1,-0.18 -0.19,-0.36 -0.3,-0.53a7.56,7.56 0,0 1,-1.89 0.65,1.85 1.85,0 0,1 -0.61,0.47 1.42,1.42 0,0 1,-0.33 0.11l-0.15,0.05a1.88,1.88 0,0 1,-0.58 0l-0.49,0.06a3.78,3.78 0,0 1,-0.75 0.05h-0.1l-0.33,-0.07h-0.09c-6.19,0.29 -12.4,0.21 -18.6,0.24s-12.36,0.07 -18.51,0.65A76.66,76.66 0,0 0,651 293.2c4.34,-3.15 9.15,-5.88 13.09,-9.11C669.32,279.81 674.37,275.88 680.28,272.93ZM672.68,389.27c-3.41,0.68 -6.78,1.49 -10.17,2.24 -4.15,0.64 -8.33,1.41 -12.51,1.69 -0.65,0.05 -1.3,0.06 -1.94,0.06 0.73,-7.16 -0.92,-14.52 -0.75,-21.7q0.35,-15.06 0.75,-30.15c0.2,-8.14 0.77,-16.25 1.57,-24.35 0.23,-2.39 1.27,-8.81 -0.62,-11.8 7.24,-1.09 14.88,0.19 22.13,-0.44 5.56,-0.48 11.11,-1.5 16.6,-2.47 3.94,-0.69 8.24,-0.86 12.28,-1.64a3.44,3.44 0,0 0,-0.17 1c-0.49,16.78 -1.86,33.78 -1.39,50.56 0.19,6.87 0.89,13.71 1,20.57 0.08,3.45 0,6.91 -0.14,10.35 -0.09,1.45 -0.32,3 -0.46,4.54l-2.32,0.28c-7.61,-1.91 -16.59,-0.13 -23.86,1.26ZM725,371.73c-4.5,2.83 -9,5.59 -13.5,8.5 -0.92,0.6 -1.86,1.22 -2.8,1.86 0,-2 -0.09,-4 -0.14,-5.94 -0.3,-11 -0.66,-22.1 -0.46,-33.14 0.18,-9.7 0.62,-19.39 0.07,-29.08A113.82,113.82 0,0 0,706.68 300c-0.14,-0.76 -0.29,-1.61 -0.46,-2.51h0.8a2.55,2.55 0,0 1,-0.26 -1.36,1.8 1.8,0 0,1 0.09,-0.45 0.11,0.11 0,0 1,0 -0.08,2.05 2.05,0 0,1 0.16,-0.38l0.06,-0.11a2.43,2.43 0,0 1,0.24 -0.32l0.09,-0.11a2.61,2.61 0,0 1,0.44 -0.37q1.8,-1.23 3.55,-2.52l1.37,-1c2.23,-1.65 4.43,-3.31 6.67,-4.93a1.8,1.8 0,0 1,0.81 -0.32l1.07,-0.82a97.55,97.55 0,0 1,9.13 -6.19,62.3 62.3,0 0,0 5.89,-3.26c0,1.9 0.11,3.79 0.12,5.65 0.08,12.9 -2.53,25.74 -2.9,38.64 -0.38,13.56 -0.82,27.27 0,40.82l0.3,5.19c-3.08,1.73 -6.08,4.36 -8.85,6.12Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M682.94,354.76a1.67,1.67 0,0 1,-2 -1.21,2.2 2.2,0 0,1 0,-0.36c0,-5.24 0.64,-10.57 0.32,-15.82 -2.15,4.19 -3.78,8.65 -6.49,12.53a1.5,1.5 0,0 1,-2.05 0.51,1.44 1.44,0 0,1 -0.5,-0.51c-2.25,-3.86 -3.64,-8.87 -6.78,-12.2 -0.19,5.28 -0.64,10.54 -0.75,15.83a1.29,1.29 0,0 1,-0.94 1.23,24.16 24.16,0 0,1 -8.81,-0.25c5.2,10.38 20.83,14.08 30,6.53a17.75,17.75 0,0 0,4.73 -6.38A57.07,57.07 0,0 0,682.94 354.76Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M679.5,324.48a16.79,16.79 0,0 0,-13.36 1.75c-9.1,4 -14.93,15.25 -12.49,25 0.12,0.47 0.27,0.94 0.43,1.39a43.66,43.66 0,0 0,8 -0.16c0,-5.91 0.49,-11.81 0.52,-17.73a1.41,1.41 0,0 1,1.43 -1.42,1.52 1.52,0 0,1 0.72,0.19c4.58,2.94 6.41,8.09 8.79,12.77 2.68,-4.65 4.32,-9.85 7.33,-14.32 0.67,-1 2.52,-1 2.78,0.36 1.21,6.36 0.7,12.73 0.53,19.14 2.2,-0.11 4.4,0 6.62,-0.11C693.69,340.88 690,327.47 679.5,324.48Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M182,259.29c-0.37,-5.69 -0.51,-11.39 -0.55,-17.08 0,-0.41 -0.07,-0.81 -0.09,-1.21 -0.62,-8.88 -0.17,-17.78 0.16,-26.67v-14c0,-10.07 1.15,-20.37 1.09,-30.55v-0.44c-0.13,-0.45 -0.23,-0.9 -0.34,-1.35 -0.06,-0.28 -0.13,-0.55 -0.18,-0.83s-0.11,-0.56 -0.16,-0.84 -0.11,-0.61 -0.16,-0.92a2.83,2.83 0,0 0,-0.08 -0.61c-0.12,-0.91 -0.22,-1.82 -0.28,-2.74h0l-4,0.08h0c-17.56,0.45 -35.09,1.86 -52.64,2.37l-2.5,0.07c-2.43,0.06 -4.86,0.11 -7.28,0.12h0c-2.54,2 -5.12,3.89 -7.76,5.72l-0.75,0.63h0c-8.17,6.87 -16,14.12 -23.75,21.5v2.16a15.37,15.37 0,0 1,-0.06 1.73v1.3c-0.32,6.84 -1.13,13.66 -1.92,20.48 -1.23,10.65 -1.92,21.32 -2.46,32 -0.57,11.16 -0.89,22.25 -0.66,33.43 0,2 0.11,4.05 0.17,6.13 0.1,0.37 0.2,0.74 0.32,1.1l-0.29,0.11c0,1.18 0,2.36 0.07,3.55 13.74,-1.47 27.55,-1.75 41.36,-2.18a100.51,100.51 0,0 1,10.27 -0.38l4.87,-0.26h0l2.64,-0.14a2.72,2.72 0,0 1,0.57 0l0.33,0.05 0.27,0.06h0.11l1.73,-1.22 2,-1.4c0.77,-0.52 1.54,-1 2.32,-1.55s1.54,-1 2.32,-1.5 1.62,-1 2.44,-1.55c8.4,-5.22 17.13,-9.94 25.72,-14.87h0l1,-0.61 3.42,-2 0.06,-0.07c1,-0.62 2.1,-1.22 3.14,-1.85Q182.15,262.27 182,259.29ZM120.82,169.71c10.81,-0.46 21.68,-0.73 32.49,-0.93 4.41,-0.09 8.83,-0.13 13.25,-0.17a104,104 0,0 0,-8.46 6.13,136 136,0 0,0 -13.69,12.14c-0.1,-0.17 -0.19,-0.36 -0.3,-0.52a7.56,7.56 0,0 1,-1.89 0.65,1.7 1.7,0 0,1 -0.61,0.46 2.19,2.19 0,0 1,-0.33 0.12h-0.15a2.71,2.71 0,0 1,-0.57 0L140,187.59a3.12,3.12 0,0 1,-0.74 0.06h-0.11a1.65,1.65 0,0 1,-0.32 -0.07h-0.09c-6.2,0.29 -12.41,0.22 -18.61,0.25s-12.36,0.06 -18.51,0.65a74.67,74.67 0,0 0,-10.12 1.41c4.33,-3.15 9.14,-5.89 13.08,-9.11C109.83,176.59 114.88,172.67 120.77,169.71ZM113.21,286.06c-3.4,0.67 -6.78,1.49 -10.16,2.23 -4.16,0.65 -8.34,1.42 -12.52,1.7 -0.65,0 -1.29,0.05 -1.94,0.05 0.74,-7.15 -0.92,-14.52 -0.75,-21.7q0.36,-15.06 0.75,-30.14c0.2,-8.15 0.77,-16.25 1.57,-24.36 0.23,-2.39 1.27,-8.8 -0.62,-11.8 7.24,-1.09 14.88,0.2 22.13,-0.43 5.56,-0.48 11.12,-1.51 16.6,-2.48 3.94,-0.69 8.24,-0.86 12.28,-1.64a3.44,3.44 0,0 0,-0.17 1c-0.48,16.79 -1.85,33.79 -1.38,50.57 0.19,6.86 0.88,13.7 1,20.57 0.08,3.44 0,6.9 -0.15,10.34 -0.08,1.45 -0.32,3 -0.46,4.54l-2.31,0.28c-7.59,-1.91 -16.57,-0.17 -23.84,1.27ZM165.54,268.51c-4.5,2.84 -9.05,5.6 -13.5,8.51l-2.78,1.86c0,-2 -0.09,-4 -0.14,-5.93 -0.3,-11 -0.66,-22.1 -0.45,-33.15 0.18,-9.7 0.61,-19.38 0.06,-29.08a112.8,112.8 0,0 0,-1.49 -13.84c-0.14,-0.76 -0.28,-1.61 -0.45,-2.51l0.79,-0.06a2.5,2.5 0,0 1,-0.26 -1.35,3.73 3.73,0 0,1 0.09,-0.46v-0.08a1,1 0,0 1,0.16 -0.37,0.34 0.34,0 0,1 0.07,-0.11 1.72,1.72 0,0 1,0.23 -0.32l0.1,-0.12a2.54,2.54 0,0 1,0.43 -0.37c1.2,-0.81 2.38,-1.66 3.55,-2.52l1.37,-1c2.22,-1.65 4.43,-3.32 6.68,-4.93a1.76,1.76 0,0 1,0.8 -0.32l1.07,-0.82a97.55,97.55 0,0 1,9.13 -6.19c2,-1.17 4.13,-2 5.89,-3.27 0,1.9 0.11,3.8 0.12,5.66 0.08,12.89 -2.52,25.74 -2.89,38.63 -0.39,13.57 -0.83,27.27 0,40.82 0.1,1.74 0.21,3.47 0.3,5.2 -3.1,1.74 -6.06,4.36 -8.85,6.12Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M123.45,251.54a1.63,1.63 0,0 1,-2 -1.18,1.58 1.58,0 0,1 0,-0.38c0,-5.24 0.63,-10.57 0.31,-15.82 -2.15,4.18 -3.77,8.64 -6.49,12.53a1.51,1.51 0,0 1,-2.07 0.49,1.41 1.41,0 0,1 -0.48,-0.49c-2.25,-3.87 -3.64,-8.88 -6.78,-12.21 -0.18,5.28 -0.64,10.55 -0.75,15.83a1.31,1.31 0,0 1,-0.94 1.24,23.89 23.89,0 0,1 -8.8,-0.26c5.19,10.38 20.83,14.09 30,6.54a17.58,17.58 0,0 0,4.73 -6.39A59.53,59.53 0,0 0,123.45 251.54Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M120,221.27A16.81,16.81 0,0 0,106.65 223c-9.1,4 -14.93,15.26 -12.49,25 0.12,0.48 0.27,0.94 0.43,1.4a43.66,43.66 0,0 0,8 -0.16c0,-5.92 0.49,-11.82 0.52,-17.73a1.43,1.43 0,0 1,1.45 -1.42,1.46 1.46,0 0,1 0.7,0.18c4.59,2.94 6.42,8.1 8.79,12.77 2.68,-4.65 4.32,-9.84 7.33,-14.32 0.67,-1 2.52,-1 2.79,0.36 1.2,6.37 0.69,12.73 0.52,19.15 2.21,-0.12 4.41,0 6.62,-0.12C134.21,237.64 130.54,224.25 120,221.27Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M491.52,140.72c-0.37,-5.69 -0.51,-11.39 -0.56,-17.08l-0.09,-1.2c-0.61,-8.89 -0.17,-17.78 0.16,-26.67 0,-4.66 0,-9.32 0,-14 0,-10.07 1.14,-20.37 1.08,-30.55v-0.43c-0.13,-0.45 -0.23,-0.91 -0.34,-1.36l-0.18,-0.82a5.08,5.08 0,0 0,-0.16 -0.85c-0.05,-0.28 -0.11,-0.61 -0.15,-0.91l-0.09,-0.62c-0.12,-0.91 -0.21,-1.82 -0.27,-2.74h0c-1.34,0 -2.68,0 -4,0.09h0c-17.55,0.46 -35.08,1.86 -52.63,2.38l-2.51,0.06c-2.43,0.06 -4.85,0.11 -7.28,0.12h0c-2.54,2 -5.11,3.89 -7.76,5.72l-0.74,0.63h0c-8.16,6.88 -16,14.13 -23.75,21.5v3.89a10.06,10.06 0,0 1,-0.05 1.3c-0.33,6.84 -1.13,13.66 -1.92,20.48 -1.24,10.65 -1.92,21.32 -2.47,32 -0.57,11.16 -0.88,22.25 -0.65,33.43 0,2 0.11,4.06 0.16,6.13 0.1,0.37 0.21,0.74 0.32,1.11l-0.28,0.1c0,1.18 0.05,2.37 0.06,3.55 13.74,-1.47 27.56,-1.74 41.36,-2.18a100.71,100.71 0,0 1,10.28 -0.38c1.62,-0.07 3.24,-0.17 4.87,-0.26h0l2.63,-0.14a5.61,5.61 0,0 1,0.58 0l0.33,0.06 0.27,0h0.11c0.57,-0.42 1.15,-0.82 1.72,-1.23l2,-1.4 2.31,-1.55 2.33,-1.5c0.81,-0.52 1.62,-1 2.44,-1.55 8.4,-5.22 17.13,-9.93 25.72,-14.86h0l1,-0.61c1.14,-0.66 2.28,-1.31 3.41,-2l0.07,-0.07c1,-0.61 2.1,-1.21 3.13,-1.84C491.77,144.68 491.65,142.71 491.52,140.72ZM430.36,51.14c10.82,-0.46 21.69,-0.73 32.49,-0.93q6.61,-0.12 13.25,-0.17c-2.92,1.91 -5.75,4 -8.46,6.14a136.35,136.35 0,0 0,-13.71 12.15c-0.11,-0.18 -0.2,-0.36 -0.31,-0.53a7.48,7.48 0,0 1,-1.88 0.65,1.85 1.85,0 0,1 -0.61,0.47 2.13,2.13 0,0 1,-0.33 0.11h-0.16a1.82,1.82 0,0 1,-0.57 0l-0.49,0.06a3.78,3.78 0,0 1,-0.75 0h-0.06a1.14,1.14 0,0 1,-0.33 -0.07h-0.09c-6.2,0.29 -12.4,0.21 -18.61,0.24s-12.36,0.07 -18.5,0.65a76.66,76.66 0,0 0,-10.13 1.41c4.34,-3.15 9.14,-5.89 13.09,-9.11C419.4,58 424.44,54.11 430.36,51.14ZM422.77,167.49c-3.4,0.68 -6.77,1.49 -10.16,2.24 -4.15,0.64 -8.33,1.41 -12.51,1.69q-1,0.06 -2,0.06c0.74,-7.16 -0.91,-14.52 -0.75,-21.71q0.36,-15.06 0.75,-30.14c0.21,-8.15 0.78,-16.25 1.57,-24.35 0.24,-2.39 1.28,-8.81 -0.61,-11.81 7.24,-1.08 14.88,0.2 22.13,-0.43 5.56,-0.48 11.11,-1.5 16.6,-2.47 3.93,-0.7 8.24,-0.87 12.27,-1.65a3.44,3.44 0,0 0,-0.17 1c-0.48,16.78 -1.85,33.78 -1.38,50.56 0.19,6.87 0.88,13.71 1,20.57 0.08,3.44 0,6.91 -0.15,10.34 -0.08,1.45 -0.32,3 -0.46,4.55l-2.31,0.27C439,164.32 430,166.05 422.77,167.49ZM475.1,150c-4.5,2.83 -9.05,5.59 -13.5,8.5l-2.8,1.85c-0.05,-2 -0.09,-4 -0.14,-5.93 -0.3,-11 -0.66,-22.1 -0.46,-33.14 0.18,-9.7 0.62,-19.39 0.07,-29.08a111.89,111.89 0,0 0,-1.5 -13.89c-0.13,-0.76 -0.28,-1.61 -0.45,-2.51l0.8,-0.06a2.5,2.5 0,0 1,-0.26 -1.35,2.36 2.36,0 0,1 0.08,-0.45v-0.08a1.8,1.8 0,0 1,0.16 -0.38l0.06,-0.11a2.43,2.43 0,0 1,0.24 -0.32l0.09,-0.11a2.61,2.61 0,0 1,0.44 -0.37c1.19,-0.82 2.37,-1.67 3.55,-2.52l1.37,-1c2.22,-1.65 4.43,-3.32 6.67,-4.93a1.76,1.76 0,0 1,0.8 -0.32c0.36,-0.27 0.71,-0.55 1.08,-0.82a99.38,99.38 0,0 1,9.12 -6.19c2,-1.17 4.13,-2 5.9,-3.27 0,1.91 0.11,3.8 0.12,5.66 0.08,12.9 -2.53,25.74 -2.9,38.64 -0.38,13.56 -0.82,27.26 0,40.82 0.1,1.73 0.2,3.46 0.29,5.19 -3.09,1.78 -6.06,4.41 -8.85,6.17Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M433,133a1.67,1.67 0,0 1,-2 -1.21,2.2 2.2,0 0,1 0,-0.36c0,-5.24 0.63,-10.57 0.32,-15.82 -2.15,4.18 -3.78,8.64 -6.5,12.53a1.48,1.48 0,0 1,-2 0.51,1.39 1.39,0 0,1 -0.51,-0.51c-2.26,-3.86 -3.64,-8.87 -6.79,-12.21 -0.18,5.29 -0.64,10.55 -0.75,15.84a1.29,1.29 0,0 1,-0.94 1.23,23.89 23.89,0 0,1 -8.8,-0.26c5.19,10.39 20.83,14.09 30,6.54a17.77,17.77 0,0 0,4.74 -6.38A55.13,55.13 0,0 0,433 133Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M429.58,102.7a16.75,16.75 0,0 0,-13.36 1.75c-9.1,4 -14.93,15.25 -12.49,25 0.12,0.48 0.27,0.94 0.43,1.4a43.66,43.66 0,0 0,8 -0.16c0,-5.91 0.49,-11.82 0.52,-17.73a1.43,1.43 0,0 1,1.45 -1.42,1.46 1.46,0 0,1 0.7,0.18c4.58,3 6.41,8.1 8.78,12.77 2.69,-4.65 4.33,-9.84 7.33,-14.32 0.68,-1 2.53,-1 2.79,0.37 1.21,6.36 0.69,12.73 0.53,19.14 2.2,-0.12 4.4,0 6.61,-0.12C443.77,119.08 440.11,105.69 429.58,102.7Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M671.84,227.66c-0.37,-5.69 -0.51,-11.39 -0.55,-17.09 0,-0.4 -0.07,-0.8 -0.09,-1.2 -0.62,-8.88 -0.17,-17.78 0.16,-26.67 -0.05,-4.66 0,-9.32 0,-14 0,-10.08 1.15,-20.37 1.09,-30.55v-0.44c-0.13,-0.45 -0.24,-0.9 -0.34,-1.35 -0.06,-0.28 -0.13,-0.55 -0.18,-0.83s-0.11,-0.56 -0.16,-0.84 -0.11,-0.61 -0.16,-0.92a2.83,2.83 0,0 0,-0.08 -0.61c-0.12,-0.91 -0.22,-1.82 -0.28,-2.74h0l-4,0.08h0c-17.55,0.46 -35.09,1.87 -52.64,2.38l-2.5,0.07q-3.65,0.09 -7.29,0.12h0c-2.54,2 -5.12,3.89 -7.76,5.71l-0.75,0.64h0c-8.17,6.87 -16,14.12 -23.75,21.5v2.15a15.64,15.64 0,0 1,-0.06 1.74,11.13 11.13,0 0,1 0,1.29c-0.32,6.85 -1.13,13.67 -1.92,20.49 -1.23,10.65 -1.92,21.32 -2.46,32 -0.57,11.16 -0.89,22.24 -0.66,33.42 0.05,2 0.11,4.06 0.17,6.13 0.1,0.38 0.2,0.75 0.32,1.11l-0.29,0.11c0,1.18 0,2.36 0.07,3.55 13.74,-1.48 27.55,-1.75 41.36,-2.18 3.41,-0.3 6.84,-0.43 10.27,-0.39 1.62,-0.07 3.25,-0.17 4.87,-0.26h0c0.88,0 1.76,-0.08 2.64,-0.14h0.57l0.33,0.05 0.28,0.06h0.1l1.73,-1.22 2,-1.4 2.31,-1.55 2.33,-1.5c0.78,-0.5 1.62,-1 2.44,-1.55 8.41,-5.22 17.13,-9.94 25.72,-14.87h0l1,-0.61 3.42,-2 0.06,-0.07c1,-0.62 2.1,-1.22 3.14,-1.85Q672,230.64 671.84,227.66ZM610.68,138.08c10.82,-0.47 21.69,-0.73 32.5,-0.94 4.41,-0.08 8.83,-0.12 13.24,-0.16a103.87,103.87 0,0 0,-8.45 6.13,136.47 136.47,0 0,0 -13.72,12.15c-0.1,-0.17 -0.19,-0.36 -0.3,-0.52a7.15,7.15 0,0 1,-1.89 0.64,1.73 1.73,0 0,1 -0.61,0.47 2.19,2.19 0,0 1,-0.33 0.12L631,155.97a2.81,2.81 0,0 1,-0.58 0l-0.49,0.05a3.11,3.11 0,0 1,-0.74 0h-0.11a1.65,1.65 0,0 1,-0.32 -0.07h-0.09c-6.2,0.29 -12.41,0.22 -18.61,0.24s-12.36,0.07 -18.51,0.66a74.67,74.67 0,0 0,-10.12 1.41c4.33,-3.15 9.14,-5.89 13.08,-9.12C599.77,145 604.77,141 610.68,138.08ZM603.08,254.43c-3.4,0.67 -6.78,1.49 -10.16,2.23 -4.16,0.65 -8.34,1.42 -12.52,1.7 -0.65,0 -1.29,0.05 -1.94,0.05 0.74,-7.15 -0.92,-14.52 -0.75,-21.7q0.36,-15.08 0.75,-30.14c0.2,-8.15 0.77,-16.25 1.57,-24.36 0.23,-2.39 1.27,-8.8 -0.62,-11.8 7.24,-1.09 14.88,0.2 22.13,-0.43 5.56,-0.48 11.12,-1.51 16.6,-2.48 3.94,-0.69 8.24,-0.86 12.28,-1.64a3.44,3.44 0,0 0,-0.17 1c-0.48,16.78 -1.85,33.79 -1.39,50.57 0.2,6.86 0.89,13.7 1,20.57 0.08,3.44 0,6.9 -0.15,10.34 -0.08,1.45 -0.32,3 -0.46,4.54l-2.31,0.28c-7.61,-1.91 -16.59,-0.17 -23.86,1.27ZM655.41,236.88c-4.5,2.84 -9,5.6 -13.51,8.51l-2.8,1.85c0,-2 -0.09,-4 -0.14,-5.93 -0.3,-11.05 -0.66,-22.1 -0.45,-33.15 0.18,-9.7 0.61,-19.38 0.06,-29.08a113.44,113.44 0,0 0,-1.49 -13.88c-0.14,-0.76 -0.28,-1.62 -0.45,-2.51a3.55,3.55 0,0 0,0.79 -0.06,2.5 2.5,0 0,1 -0.26,-1.35 1.87,1.87 0,0 1,0.09 -0.46v-0.08a1.73,1.73 0,0 1,0.16 -0.37,0.34 0.34,0 0,1 0.07,-0.11 1.5,1.5 0,0 1,0.23 -0.33l0.09,-0.11a2.61,2.61 0,0 1,0.44 -0.37c1.2,-0.81 2.38,-1.66 3.55,-2.52l1.38,-1c2.22,-1.64 4.42,-3.31 6.67,-4.93a1.64,1.64 0,0 1,0.8 -0.31l1.13,-0.81a103,103 0,0 1,9.13 -6.19c2,-1.16 4.13,-1.95 5.89,-3.26 0,1.9 0.11,3.8 0.12,5.66 0.08,12.89 -2.52,25.74 -2.89,38.63 -0.39,13.56 -0.83,27.27 0,40.82 0.1,1.74 0.21,3.47 0.3,5.2C661.16,232.5 658.2,235.12 655.41,236.88Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M613.34,219.88a1.63,1.63 0,0 1,-2 -1.18,1.58 1.58,0 0,1 -0.05,-0.38c0,-5.24 0.63,-10.57 0.31,-15.82 -2.15,4.18 -3.77,8.64 -6.49,12.53a1.51,1.51 0,0 1,-2.07 0.49,1.41 1.41,0 0,1 -0.48,-0.49c-2.25,-3.87 -3.64,-8.88 -6.78,-12.21 -0.18,5.28 -0.64,10.55 -0.75,15.83a1.31,1.31 0,0 1,-0.94 1.24,24.33 24.33,0 0,1 -8.8,-0.26c5.19,10.38 20.83,14.09 30,6.54a17.58,17.58 0,0 0,4.73 -6.39A59.53,59.53 0,0 0,613.34 219.88Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M609.91,189.63a16.85,16.85 0,0 0,-13.37 1.75c-9.1,4 -14.93,15.25 -12.49,25 0.12,0.48 0.27,0.94 0.43,1.4a43.66,43.66 0,0 0,8 -0.16c0,-5.92 0.49,-11.82 0.52,-17.74a1.43,1.43 0,0 1,1.46 -1.41,1.39 1.39,0 0,1 0.69,0.18c4.59,2.94 6.42,8.09 8.79,12.77 2.68,-4.65 4.32,-9.84 7.33,-14.32 0.67,-1 2.52,-1 2.79,0.36 1.2,6.37 0.69,12.73 0.52,19.15 2.21,-0.12 4.41,0 6.62,-0.12C624.1,206 620.43,192.62 609.91,189.63Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M684.87,580.4c-0.37,-5.7 -0.51,-11.39 -0.55,-17.09 0,-0.4 -0.07,-0.8 -0.09,-1.2 -0.62,-8.89 -0.17,-17.78 0.16,-26.67v-14c0,-10.07 1.15,-20.36 1.09,-30.54v-0.44c-0.13,-0.45 -0.23,-0.9 -0.34,-1.36 -0.06,-0.27 -0.13,-0.54 -0.18,-0.82s-0.11,-0.56 -0.16,-0.84 -0.11,-0.61 -0.16,-0.92a2.83,2.83 0,0 0,-0.08 -0.61c-0.12,-0.91 -0.22,-1.83 -0.28,-2.74h0l-4,0.08h0c-17.55,0.46 -35.09,1.87 -52.64,2.38l-2.5,0.07q-3.64,0.09 -7.28,0.12h0c-2.54,2 -5.12,3.89 -7.76,5.71l-0.75,0.64h0c-8.17,6.87 -16,14.12 -23.75,21.5v2.15c0,0.72 0,1.16 -0.05,1.73l-0.06,1.3c-0.32,6.85 -1.13,13.67 -1.92,20.49 -1.23,10.65 -1.92,21.32 -2.46,32 -0.57,11.17 -0.89,22.25 -0.65,33.43 0,2 0.1,4.06 0.16,6.13 0.1,0.38 0.21,0.75 0.32,1.11l-0.29,0.11c0,1.18 0.06,2.36 0.07,3.55 13.74,-1.48 27.55,-1.75 41.36,-2.18 3.41,-0.3 6.84,-0.43 10.27,-0.39 1.63,-0.07 3.25,-0.17 4.87,-0.26h0c0.88,0 1.76,-0.08 2.64,-0.14h0.57l0.33,0 0.27,0.06h0.11l1.73,-1.22 2,-1.4c0.77,-0.52 1.54,-1 2.32,-1.55l2.32,-1.51 2.44,-1.54c8.41,-5.22 17.13,-9.94 25.72,-14.87h0l1,-0.61 3.42,-2 0.06,-0.07c1.05,-0.62 2.1,-1.22 3.14,-1.85Q685.07,583.39 684.87,580.4ZM623.77,490.82c10.81,-0.47 21.68,-0.73 32.49,-0.94q6.62,-0.12 13.25,-0.16a102.32,102.32 0,0 0,-8.46 6.13A136.47,136.47 0,0 0,647.33 508c-0.1,-0.17 -0.19,-0.36 -0.3,-0.52a7.15,7.15 0,0 1,-1.89 0.64,1.73 1.73,0 0,1 -0.61,0.47l-0.33,0.12h-0.15a1.82,1.82 0,0 1,-0.57 0l-0.5,0.06a2.66,2.66 0,0 1,-0.74 0.05h-0.11l-0.32,-0.07h-0.09c-6.2,0.29 -12.41,0.22 -18.61,0.24s-12.36,0.07 -18.51,0.65a74.68,74.68 0,0 0,-10.12 1.42c4.34,-3.15 9.14,-5.89 13.09,-9.12C612.77,497.7 617.77,493.78 623.77,490.82ZM616.16,607.17c-3.4,0.67 -6.78,1.48 -10.16,2.23 -4.16,0.64 -8.34,1.42 -12.52,1.69 -0.64,0 -1.29,0.06 -1.94,0.06 0.74,-7.15 -0.92,-14.52 -0.75,-21.7q0.36,-15.08 0.75,-30.14c0.2,-8.15 0.77,-16.26 1.57,-24.36 0.23,-2.39 1.27,-8.8 -0.62,-11.8 7.24,-1.09 14.88,0.19 22.14,-0.43 5.55,-0.49 11.11,-1.51 16.59,-2.48 3.94,-0.69 8.24,-0.86 12.28,-1.64a3.44,3.44 0,0 0,-0.17 1c-0.48,16.78 -1.85,33.78 -1.38,50.56 0.19,6.87 0.88,13.71 1,20.58 0.08,3.44 0,6.9 -0.15,10.34 -0.08,1.45 -0.32,3 -0.46,4.54l-2.31,0.28c-7.66,-1.91 -16.65,-0.17 -23.92,1.27ZM668.49,589.62c-4.5,2.84 -9,5.6 -13.5,8.5L652.18,600c0,-2 -0.08,-4 -0.14,-5.94 -0.3,-11 -0.66,-22.09 -0.45,-33.14 0.18,-9.7 0.61,-19.38 0.06,-29.08a113.82,113.82 0,0 0,-1.49 -13.89c-0.14,-0.75 -0.28,-1.61 -0.45,-2.51l0.79,0a2.5,2.5 0,0 1,-0.26 -1.35,3.73 3.73,0 0,1 0.09,-0.46v-0.08a1.76,1.76 0,0 1,0.17 -0.37,0.34 0.34,0 0,1 0.06,-0.12 2.35,2.35 0,0 1,0.23 -0.32l0.1,-0.11a2.21,2.21 0,0 1,0.43 -0.37q1.8,-1.23 3.55,-2.52l1.37,-1c2.23,-1.65 4.43,-3.32 6.68,-4.94a1.64,1.64 0,0 1,0.8 -0.31l1.07,-0.83a99.53,99.53 0,0 1,9.13 -6.19c2,-1.16 4.13,-1.95 5.89,-3.26 0,1.9 0.11,3.8 0.12,5.66 0.09,12.89 -2.52,25.73 -2.89,38.63 -0.39,13.56 -0.82,27.27 0,40.82 0.11,1.73 0.21,3.47 0.3,5.2 -3.15,1.79 -6.11,4.43 -8.9,6.17Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M626.38,572.65a1.64,1.64 0,0 1,-2 -1.19,1.5 1.5,0 0,1 0,-0.37c0,-5.24 0.63,-10.57 0.31,-15.83 -2.15,4.19 -3.77,8.65 -6.49,12.54a1.51,1.51 0,0 1,-2.07 0.49,1.41 1.41,0 0,1 -0.48,-0.49c-2.25,-3.87 -3.64,-8.88 -6.78,-12.21 -0.18,5.28 -0.64,10.55 -0.75,15.83a1.29,1.29 0,0 1,-0.94 1.24,24.33 24.33,0 0,1 -8.8,-0.26c5.19,10.38 20.83,14.08 30,6.53a17.55,17.55 0,0 0,4.73 -6.38A59.35,59.35 0,0 0,626.38 572.65Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M622.94,542.37a16.85,16.85 0,0 0,-13.37 1.75c-9.09,4 -14.93,15.25 -12.48,25 0.12,0.47 0.26,0.94 0.42,1.39a44.56,44.56 0,0 0,8 -0.15c0,-5.92 0.48,-11.82 0.51,-17.74a1.43,1.43 0,0 1,1.46 -1.41,1.39 1.39,0 0,1 0.69,0.18c4.59,2.94 6.42,8.09 8.79,12.77 2.68,-4.65 4.32,-9.84 7.33,-14.32 0.67,-1 2.52,-1 2.79,0.36 1.2,6.37 0.69,12.73 0.52,19.14 2.21,-0.11 4.41,0 6.62,-0.11C637.13,558.75 633.47,545.36 622.94,542.37Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M176.77,428.77c-0.37,-5.69 -0.51,-11.38 -0.55,-17.08 0,-0.4 -0.07,-0.8 -0.09,-1.2 -0.62,-8.89 -0.17,-17.78 0.16,-26.67 0,-4.66 0,-9.32 0,-14 0,-10.07 1.15,-20.37 1.09,-30.55v-0.43c-0.13,-0.45 -0.24,-0.91 -0.34,-1.36 -0.06,-0.27 -0.13,-0.55 -0.18,-0.82s-0.11,-0.56 -0.16,-0.84 -0.11,-0.62 -0.16,-0.92a3.13,3.13 0,0 0,-0.08 -0.62c-0.12,-0.91 -0.22,-1.82 -0.28,-2.73h0c-1.34,0 -2.68,0 -4,0.08h0c-17.56,0.46 -35.09,1.87 -52.64,2.38l-2.5,0.06c-2.43,0.06 -4.86,0.11 -7.29,0.12h0q-3.81,3 -7.76,5.72l-0.75,0.63h0c-8.17,6.88 -16,14.13 -23.75,21.5v2.16a15.37,15.37 0,0 1,-0.06 1.73v1.3c-0.32,6.84 -1.13,13.66 -1.92,20.48 -1.23,10.66 -1.92,21.32 -2.46,32 -0.57,11.17 -0.89,22.25 -0.66,33.43 0,2 0.11,4.06 0.17,6.13 0.1,0.37 0.2,0.74 0.32,1.11l-0.29,0.11c0,1.17 0,2.36 0.07,3.54 13.74,-1.47 27.55,-1.74 41.36,-2.18a100.51,100.51 0,0 1,10.27 -0.38c1.62,-0.07 3.25,-0.17 4.87,-0.26h0c0.88,0 1.76,-0.08 2.64,-0.14h0.9l0.26,0.05h0.12l1.73,-1.23c0.66,-0.47 1.33,-0.93 2,-1.39s1.54,-1 2.32,-1.55l2.32,-1.51c0.81,-0.52 1.62,-1 2.44,-1.54 8.4,-5.22 17.13,-9.94 25.72,-14.87h0l1,-0.61 3.42,-2 0.06,-0.06c1,-0.62 2.1,-1.22 3.14,-1.85A53.62,53.62 0,0 1,176.77 428.77ZM115.61,339.2c10.82,-0.47 21.69,-0.74 32.5,-0.94q6.6,-0.12 13.24,-0.16a103.87,103.87 0,0 0,-8.45 6.13,135.38 135.38,0 0,0 -13.72,12.15c-0.1,-0.18 -0.19,-0.36 -0.3,-0.53a7.56,7.56 0,0 1,-1.89 0.65,1.85 1.85,0 0,1 -0.61,0.47 1.42,1.42 0,0 1,-0.33 0.11l-0.15,0.05a2.81,2.81 0,0 1,-0.58 0l-0.49,0.06a4.68,4.68 0,0 1,-0.74 0.05H134l-0.32,-0.08h-0.09c-6.2,0.29 -12.41,0.21 -18.61,0.24s-12.36,0.07 -18.51,0.65a76.51,76.51 0,0 0,-10.12 1.41c4.33,-3.15 9.14,-5.88 13.08,-9.11 5.19,-4.27 10.24,-8.19 16.15,-11.15ZM108,455.54c-3.4,0.68 -6.78,1.49 -10.16,2.24 -4.16,0.64 -8.34,1.41 -12.52,1.69 -0.65,0 -1.29,0.06 -1.94,0.06 0.74,-7.16 -0.92,-14.52 -0.75,-21.71q0.36,-15.06 0.75,-30.14c0.2,-8.14 0.77,-16.25 1.57,-24.35 0.23,-2.39 1.27,-8.81 -0.62,-11.8 7.24,-1.09 14.88,0.19 22.13,-0.44 5.56,-0.48 11.12,-1.5 16.6,-2.47 3.94,-0.7 8.24,-0.86 12.28,-1.65a3.44,3.44 0,0 0,-0.17 1c-0.48,16.78 -1.85,33.78 -1.39,50.56 0.2,6.87 0.89,13.71 1.05,20.57 0.08,3.45 0,6.91 -0.15,10.35 -0.08,1.45 -0.32,3 -0.46,4.54l-2.31,0.28c-7.71,-1.9 -16.69,-0.17 -24,1.27ZM160.34,438c-4.5,2.83 -9.05,5.59 -13.51,8.5l-2.8,1.86q-0.06,-3 -0.14,-5.94c-0.3,-11 -0.66,-22.1 -0.45,-33.14 0.18,-9.7 0.61,-19.39 0.06,-29.08A113.82,113.82 0,0 0,142 366.31c-0.14,-0.76 -0.28,-1.61 -0.45,-2.51l0.79,-0.05a2.55,2.55 0,0 1,-0.26 -1.36,1.8 1.8,0 0,1 0.09,-0.45v-0.08a2.05,2.05 0,0 1,0.16 -0.38l0.07,-0.11a1.72,1.72 0,0 1,0.23 -0.32l0.09,-0.11a2.61,2.61 0,0 1,0.44 -0.37c1.2,-0.82 2.38,-1.67 3.55,-2.52l1.37,-1c2.22,-1.64 4.43,-3.31 6.68,-4.93a1.76,1.76 0,0 1,0.8 -0.32l1.07,-0.82a99.62,99.62 0,0 1,9.13 -6.2c2,-1.16 4.13,-1.95 5.89,-3.27 0,1.91 0.11,3.8 0.12,5.66 0.08,12.9 -2.52,25.74 -2.89,38.64 -0.39,13.56 -0.83,27.27 0,40.82 0.1,1.73 0.21,3.46 0.3,5.19 -3.15,1.79 -6.11,4.42 -8.9,6.18Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M118.22,421a1.65,1.65 0,0 1,-2 -1.26,1.55 1.55,0 0,1 0,-0.31c0,-5.24 0.63,-10.57 0.31,-15.82 -2.15,4.18 -3.77,8.65 -6.49,12.53a1.5,1.5 0,0 1,-2.05 0.51,1.44 1.44,0 0,1 -0.5,-0.51c-2.25,-3.86 -3.64,-8.87 -6.78,-12.2 -0.18,5.28 -0.64,10.54 -0.75,15.83A1.29,1.29 0,0 1,99 421a24.11,24.11 0,0 1,-8.8 -0.25c5.19,10.38 20.83,14.08 30,6.53a17.63,17.63 0,0 0,4.73 -6.38A58.1,58.1 0,0 0,118.22 421Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M114.77,390.75a16.81,16.81 0,0 0,-13.37 1.75c-9.1,4 -14.93,15.25 -12.49,25 0.12,0.48 0.27,0.95 0.43,1.4a43.66,43.66 0,0 0,8 -0.16c0,-5.91 0.49,-11.81 0.52,-17.73a1.43,1.43 0,0 1,1.46 -1.41,1.39 1.39,0 0,1 0.69,0.18c4.59,2.94 6.42,8.09 8.79,12.77 2.68,-4.66 4.32,-9.85 7.33,-14.33 0.67,-1 2.52,-1 2.79,0.37 1.2,6.36 0.69,12.73 0.52,19.14 2.21,-0.11 4.41,0 6.62,-0.12C129,407.13 125.31,393.74 114.77,390.75Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M413.11,429.38c-5.08,-2.92 -11.2,-4.36 -16.81,-5.94 -6,-1.69 -12.11,-3.18 -18,-5.35 -5.66,-2.08 -11.2,-4.51 -17,-6.22 -4.28,-1.27 -11.8,-4.07 -15.57,-0.56a3,3 0,0 0,0 4.25h0c1.68,1.62 4.08,1.81 6.26,2.38a76.7,76.7 0,0 1,8.06 2.65c5.44,2.11 10.79,4.43 16.23,6.56 10.85,4.25 22.36,6.42 33.14,10.9C414.49,440.14 417.66,432 413.11,429.38Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M483.77,329.62c0.54,-4.13 -5.38,-4.89 -7.27,-2 -3.27,5.07 -3.54,12.28 -3.84,18.12 -0.33,6.73 -0.13,13.47 -0.48,20.2 -0.37,7 -1.42,13.93 -1.78,20.94 -0.41,7.75 -1.5,15.33 -2.2,23 -1.83,5.2 6.9,7.68 8.81,2.2 2.4,-6.93 2.26,-15.18 2.62,-22.45s1.34,-14.69 1.8,-22.05c0.41,-6.48 0.1,-13 0.22,-19.48S483,335.88 483.77,329.62Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M636.14,362.7c-6.31,2.88 -11.72,7.34 -17.12,11.64a166.31,166.31 0,0 1,-16.53 11.78c-12.06,7.43 -24.17,14.34 -35.47,22.94 -10.74,8.17 -21,16.91 -31.75,25.11a311.38,311.38 0,0 1,-33.73 22.2c-2.71,1.57 -0.92,6.28 2.19,5.19 12.75,-4.44 24.18,-12.26 35,-20.21s21.26,-16.47 32.1,-24.47c11.2,-8.25 23.15,-15 35,-22.21 12.13,-7.34 22.33,-17.47 34.76,-24.26C645.77,367.58 641.24,360.38 636.14,362.7Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M682.7,391.88a2.3,2.3 0,0 0,-2.56 -1c-3.39,0.77 -4.65,5.39 -5.85,8.23 -1.46,3.45 -2.81,6.94 -4,10.5 -2.72,8.26 -4.83,16.67 -6.76,25.15s-3.7,16.72 -5.52,25.09c-0.87,3.95 -1.76,7.91 -2.72,11.84 -0.85,3.45 -3.17,8.25 -1.89,11.7 1.13,3 4.23,3.69 6.7,1.77 2.77,-2.16 3.18,-7.21 4,-10.47 1,-3.92 1.86,-7.86 2.72,-11.8 1.84,-8.36 3.45,-16.77 5.24,-25.14 1.74,-8.12 3.57,-16.24 5.71,-24.27 1,-3.85 2.09,-7.7 3.31,-11.5C682.07,398.88 684.37,394.88 682.7,391.88Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M660.69,260.78c-3.68,-5.21 -7.88,-12.15 -13.45,-15.55a3.47,3.47 0,0 0,-5 3.89c1.39,5.6 6.45,10.52 9.59,15.21a68.73,68.73 0,0 1,4.85 8.07c1.09,2.26 1.12,4.91 2.85,6.8a4.46,4.46 0,0 0,6.29 0C670.3,274 663.84,265.24 660.69,260.78Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M471.32,211.46c-0.61,-9 -3.48,-17.42 -5.25,-26.19 -1.52,-7.53 -1.76,-16.68 -6.62,-23 -2.1,-2.72 -6.13,-1.18 -5.54,2.34 1.24,7.44 2.44,14.87 3.65,22.32 1.32,8.2 4,16.21 4.45,24.53C462.36,217.42 471.77,217.44 471.32,211.46Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M446.62,273.14c-2.5,-2.36 -6.89,-2.54 -10.1,-3.75 -3.68,-1.39 -7.22,-3.1 -10.86,-4.59 -9.45,-3.86 -19.48,-6.14 -29.15,-9.36 -10,-3.34 -19.94,-6.95 -30,-10.13 -9.69,-3.05 -20.44,-7.33 -30.7,-7.54a3.22,3.22 0,0 0,-1.61 6c4.54,2.52 9.84,3.93 14.73,5.6s10.08,3.3 15.09,5c10.23,3.52 20.29,7.5 30.51,11 9.29,3.21 19,5.55 28,9.43 3.73,1.6 7.41,3.32 11.21,4.75 3.43,1.29 8.61,3.47 11.94,1.09C448.06,278.93 449,275.42 446.62,273.14Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M239.77,243.47c-4.9,-3.25 -10.93,-5 -16.35,-7.22 -4.87,-2 -9.73,-3.86 -14.74,-5.44 -4.53,-1.44 -9.09,-2.8 -13.54,-4.47 -3.46,-1.29 -7.47,-2.77 -10.14,-5.42 -5,-5 -12.74,2.74 -7.76,7.76 6.81,6.86 17.81,9.25 26.76,11.92 5,1.48 9.83,3.23 14.72,5 6.07,2.16 12.6,5.13 19.15,4.92a3.8,3.8 0,0 0,1.9 -7.05Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M237.45,270c-4.22,0.3 -7.41,5.45 -9.8,8.52 -3.13,4 -6,8.19 -8.78,12.45 -6,9.09 -11.77,18.24 -18.56,26.74 -6.35,8 -12.91,15.76 -19,23.91 -2.28,3 -4.56,6.08 -6.66,9.25s-4.43,6.39 -2.77,10.31c1,2.31 4.08,2.46 6,1.57 2.62,-1.22 4.1,-5.46 5.66,-7.76 2,-3 4.21,-5.92 6.4,-8.82 6.08,-8.08 12.46,-15.93 18.61,-24a255.72,255.72 0,0 0,16.55 -25.26c2.65,-4.46 5.33,-8.92 8.09,-13.31 2,-3.16 6.51,-7.69 6.27,-11.58a2,2 0,0 0,-2 -2Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M529.77,76.1c-9.36,3.91 -15.86,12.16 -24.58,17.15 -3.42,1.92 -6.82,3.63 -10.16,5.63 -2.87,1.66 -6.76,3.65 -8.46,6.62 -2.15,3.74 2.05,7.43 5.64,5.64 2.81,-1.4 5.45,-3.41 8.24,-4.91 3.22,-1.74 6.53,-3.33 9.74,-5.09 8.35,-4.58 14.85,-11.75 23.12,-16.5C537.77,82.07 534.71,74 529.77,76.1Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M543.61,69.08a4.71,4.71 0,0 0,-3.19 -1.32,4.51 4.51,0 1,0 3.18,7.71h0a4.62,4.62 0,0 0,1.32 -3.19A4.55,4.55 0,0 0,543.61 69.08Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M550.56,61.34c-4.94,0 -4.95,7.68 0,7.68S555.51,61.34 550.56,61.34Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M341.45,59.68c-2.19,4.34 -3.2,9.44 -4.77,14.05C334.88,79 333,84.17 331,89.35c-3.73,9.9 -7.69,19.7 -11.54,29.56A275.72,275.72 0,0 0,309.4 149c-0.54,2.07 -5.28,24.91 0.27,22.87 3.37,-1.24 3.42,-6.83 4.18,-9.83 1.25,-4.93 2.6,-9.87 4.09,-14.74 3,-9.68 6.69,-19.1 10.41,-28.52s7.56,-19 11.17,-28.52c1.87,-5 3.69,-9.94 5.4,-15 1.51,-4.39 3.48,-9 3.91,-13.66C349.2,57.77 343.17,56.27 341.45,59.68Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M350.49,48.72a3,3 0,0 0,-0.37 -1.23,2.7 2.7,0 0,0 -1.59,-1.24 8,8 0,0 0,-0.75 -0.32,3.81 3.81,0 1,0 0.91,7 4,4 0,0 0,1.8 -4.2Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M352.22,35.88a6.46,6.46 0,0 0,-1 -0.74,3.54 3.54,0 0,0 -3.61,0A3.58,3.58 0,0 0,346.3 40a3.63,3.63 0,0 0,1.31 1.3,3.54 3.54,0 0,0 3.61,0 6.46,6.46 0,0 0,1 -0.74,3.32 3.32,0 0,0 0,-4.68Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M684.77,189c-1.09,0.93 -3.25,1.41 -4.56,2 -2,0.9 -3.92,1.85 -5.82,2.89 -3,1.67 -6.35,3.57 -8.23,6.59 -1.51,2.43 1.37,4.53 3.56,3.57 2.79,-1.22 5.36,-3 8.09,-4.31s6.7,-4 9.71,-4.11C694.52,195.55 690.55,184.16 684.77,189Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M165.05,116.47c-1.75,8.64 -2.18,17.52 -4.15,26.12 -1.83,8 -4.54,15.43 -3.37,23.7 0.6,4.2 7,3 7.17,-1 0.26,-7.74 3.49,-14.83 5,-22.32 1.67,-8 2.33,-16.15 4,-24.15C174.84,113.21 166.19,110.8 165.05,116.47Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M169.37,103.46c-4.63,0 -4.64,7.21 0,7.21S174,103.46 169.37,103.46Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M174.16,98.71a2.19,2.19 0,0 0,0.27 -1.1,2.8 2.8,0 0,0 -0.58,-1.62 2.64,2.64 0,0 0,-1.39 -1,3.12 3.12,0 0,0 -2.06,0.27 3.91,3.91 0,0 0,-1 0.7,3.08 3.08,0 0,0 -1.06,3.38 3.74,3.74 0,0 0,0.33 0.8,2.76 2.76,0 0,0 1.1,1.12h0l0.57,0.45A2.57,2.57 0,0 0,174.13 99Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M698.14,184.55c-4.45,0 -4.46,6.92 0,6.92S702.6,184.55 698.14,184.55Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M736,504.18a4.13,4.13 0,0 0,-2.35 -1.81,3.93 3.93,0 0,0 -3.82,1c-5.36,5.42 -13.92,7.93 -20.74,11 -4.58,2.06 -9,4.53 -13.43,6.8 -5.3,2.69 -10.89,4.69 -16.22,7.28 -2.32,1.14 -1.16,4.87 1.31,4.81 11.36,-0.31 21.84,-8.22 32,-12.51 4.31,-1.81 8.67,-3.51 12.9,-5.51 3.36,-1.59 7.3,-3.4 9.74,-6.31A4.07,4.07 0,0 0,736 504.18Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M745.63,499.09a4,4 0,0 0,-5.66 0l-0.05,0a4.14,4.14 0,0 0,-1.18 2.85,4.08 4.08,0 0,0 1.18,2.86 4.19,4.19 0,0 0,2.85 1.18,4 4,0 0,0 4,-4A4.15,4.15 0,0 0,745.63 499.09Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M751.1,493.88c-3.57,0 -3.57,5.54 0,5.54S754.66,493.88 751.1,493.88Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M448.4,304a2.47,2.47 0,0 0,-2.16 -1.24c-3.69,-0.09 -6.78,5 -9.41,7.13 -3.55,2.95 -7.52,5.4 -11.22,8.14 -9.28,6.88 -18.9,13.32 -28,20.38s-18,13.83 -26.81,21c-8.62,7 -17.45,14.13 -24.49,22.73 -1.63,2 0.52,5.65 3,3.9 19,-13.33 37.36,-27.52 56,-41.26 9.2,-6.77 19,-12.87 27.76,-20.21a108.92,108.92 0,0 0,10.57 -10.26C446.2,311.46 450.13,308.08 448.4,304Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M270.09,368.49c-2.3,-4.67 -6.49,-7.89 -10.34,-11.21 -4.33,-3.73 -8.73,-7.33 -13,-11.16 -9.65,-8.67 -19.31,-17.37 -29.19,-25.77 -9,-7.66 -18.27,-15 -27.22,-22.73 -9.34,-8.06 -17.65,-16.87 -26,-25.94 -2.78,-3 -7.88,0.9 -5.69,4.4 12.64,20.22 33.52,34.67 51.32,50 9.78,8.42 19.29,17.19 28.92,25.8 4.33,3.86 8.54,8.1 13.45,11.24a55.82,55.82 0,0 1,12 9.77C267.26,376.12 271.82,372 270.09,368.49Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M421.06,172.11c-0.59,-2.7 -5.15,-2.86 -5.62,0 -0.59,3.66 -2.93,7.26 -4.81,10.36 -2.62,4.29 -5.44,8.45 -8.16,12.67 -7.2,11.19 -12.58,23.64 -19,35.32 -7.25,13.29 -14.5,26.43 -21.14,40.06 -6.79,13.94 -14.73,27.28 -21.52,41.23 -3.45,7.08 -6.39,14.37 -10,21.35 -3.21,6.14 -6.61,12.16 -9,18.67 -1.68,4.54 5.9,7.81 7.89,3.33 2.47,-5.58 5.49,-10.94 8.32,-16.34 3.3,-6.28 6,-12.76 9,-19.17 6.69,-14.3 14.87,-27.82 21.81,-42 6.77,-13.79 14,-27.24 21.21,-40.78 6.57,-12.28 12.1,-25.27 19.18,-37.25 2.86,-4.84 5.91,-9.56 8.45,-14.58C419.69,181 422.05,176.65 421.06,172.11Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M248.15,401.2c2,-0.36 -1,-0.51 -1.62,-0.63a27.92,27.92 0,0 0,-3 -0.37c-3.35,-0.23 -6.74,-0.23 -10.1,-0.43 -6.8,-0.4 -13.58,-1 -20.36,-1.71 -7,-0.7 -14,-1.57 -21,-2.31 -3.5,-0.37 -7,-0.74 -10.51,-1.09 -3.28,-0.33 -6.78,-1.08 -9.94,0.06a3.55,3.55 0,0 0,-0.84 6.41c3.21,2 7.42,2 11.1,2.46 3.48,0.48 7,1 10.45,1.48q10.72,1.53 21.52,2.68c7,0.74 14,1.42 21,1.87 3,0.2 6.12,0.07 9.09,0.43 2.29,0.28 4.48,1.36 6.81,0.49a4.85,4.85 0,0 0,-2.6 -9.34Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M569.51,225.23c-5.21,1.77 -10.25,4.37 -15.22,6.71S544.11,237 540,240.88c-3.56,3.33 1.28,9.94 5.32,6.9a103.61,103.61 0,0 1,13.9 -8.73c4.64,-2.45 9.7,-4.85 13.23,-8.84C574.24,228.14 572.52,224.2 569.51,225.23Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M626.09,484.88c-4.41,-11.33 -12.25,-20.74 -19.3,-30.49 -7.77,-10.76 -15.14,-21.81 -22.2,-33 -14.2,-22.6 -27.12,-45.91 -39.2,-69.7q-4.93,-9.75 -10,-19.4c-3.58,-6.8 -7,-14 -11.53,-20.21 -1.88,-2.61 -7,-1.16 -5.67,2.39 4.64,12.19 11.2,24 16.91,35.68 5.86,12 11.85,24 18.22,35.82a690.66,690.66 0,0 0,41.79 67.84c7.93,11.32 16.84,22 22.79,34.58C620,492.88 628,489.64 626.09,484.88Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M391.77,113.29c-5.44,-6.89 -15.41,-10 -23.29,-13a241.12,241.12 0,0 1,-28.07 -13c-9.78,-5.22 -19.38,-10.78 -29.27,-15.81 -3.57,-1.82 -7.22,-3.35 -10.93,-4.85 -3.1,-1.26 -8,-2.53 -10.09,-5.32 -1.46,-1.94 -4.84,-0.92 -4.14,1.75 2,7.51 9.53,10 15.77,13.24 10,5.16 19.69,11.09 29.43,16.75a246.55,246.55 0,0 0,29.21 14.63c8.18,3.4 16.12,6 23.13,11.43a3,3 0,0 0,4.19 2.91,4.09 4.09,0 0,0 2.36,-0.6l0.71,-0.46C393.62,119.09 393.77,115.81 391.77,113.29Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M279.82,53.42c-4.79,0 -4.8,7.44 0,7.44S284.61,53.42 279.82,53.42Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M270,48.2h-0.47c-3.73,-0.12 -3.74,5.91 0,5.8H270a2.9,2.9 0,0 0,0 -5.8Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M228,73.36c-0.25,-0.13 -0.5,-0.26 -0.74,-0.4 -5.07,-2.71 -5.07,7.38 0,4.67l0.74,-0.4a2.25,2.25 0,0 0,0.76 -3.1A2.33,2.33 0,0 0,228 73.36Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M230.37,85.14a4.23,4.23 0,0 0,-0.41 -0.33c-0.12,-0.11 -0.26,-0.22 -0.39,-0.32a2.44,2.44 0,0 0,-1.29 -0.33,3.1 3.1,0 0,0 -1.55,0.41 3.83,3.83 0,0 0,-1.64 2.13,2.58 2.58,0 0,0 1.78,3.2 1.77,1.77 0,0 0,0.4 0.08,2.67 2.67,0 0,0 2.84,-1.77 1.87,1.87 0,0 0,0.78 -1.08A2,2 0,0 0,230.37 85.14Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M257.34,183.55c-2.8,-7.2 -4.83,-14.66 -7,-22.07s-4.8,-14.94 -6.79,-22.5c-1.93,-7.36 -3.23,-14.87 -4.86,-22.3a101.75,101.75 0,0 0,-2.75 -10.7c-0.9,-2.63 -1.67,-6.36 -4.69,-7.15a2.33,2.33 0,0 0,-2.56 1c-1.61,2.43 0.07,5.91 0.61,8.51 0.72,3.44 1.41,6.88 2,10.34 1.3,7.72 2.34,15.48 4.21,23.09 1.82,7.4 4.18,14.7 6.16,22.06a221.63,221.63 0,0 0,6.89 22.1,4.84 4.84,0 0,0 4.4,3.35 3.6,3.6 0,0 0,3.22 -1.33C257.15,186.81 258,185.12 257.34,183.55Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M577.71,193.77c-5.27,-8 -13.37,-13.17 -20.38,-19.46 -8.24,-7.39 -16,-15.3 -24.06,-22.86 -7.43,-7 -16,-12.54 -24.39,-18.21a91.08,91.08 0,0 0,-10.41 -6.1,50.38 50.38,0 0,1 -5.37,-3c-1.43,-0.93 -2.57,-2.14 -4.23,-2.62a2.37,2.37 0,0 0,-2.92 1.63,2.55 2.55,0 0,0 -0.08,0.61c-0.76,6.44 10.93,11.27 15.06,14.39 8.05,6.09 16.62,11.76 23.93,18.75 7.79,7.45 15.21,15.27 23.09,22.62 6.82,6.27 15.82,11.63 21,19.36C572.55,204.3 581.34,199.25 577.71,193.77Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M84,246.39c-2.36,-3.9 -9.25,-4.88 -13.32,-5.93 -4.69,-1.21 -9.93,-2.77 -14.81,-2.22 -6.1,0.69 -6.36,10.18 0,9.75 4.76,-0.32 9.32,0.95 13.91,2 4.06,1 10.28,2.88 13.79,-0.31A2.78,2.78 0,0 0,84 246.39Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M43.77,238a3,3 0,1 0,3 3A3,3 0,0 0,43.77 238Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M36.2,239.43h0C36.2,239.64 36.3,239.76 36.2,239.43Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M36.18,239.38h0v-0.14a3,3 0,0 0,0.08 -0.6,2.67 2.67,0 0,0 0,-0.4 2.54,2.54 0,0 0,-0.07 -0.47l-0.06,-0.2a1.5,1.5 0,0 0,-1.36 -1.07c-1.7,-0.09 -2.76,1.59 -3,3.08a2.33,2.33 0,0 0,1.56 2.9,2.26 2.26,0 0,0 0.69,0.1 2.38,2.38 0,0 0,2.34 -2.42,2.32 2.32,0 0,0 -0.08,-0.58A0.75,0.75 0,0 1,36.18 239.38Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M27.27,304l-0.36,-0.85 -0.52,-0.68a2.6,2.6 0,0 0,-1 -0.67,3.32 3.32,0 0,0 -4.6,1 3.18,3.18 0,0 0,-0.4 0.88,3.84 3.84,0 0,0 0.35,3 3.72,3.72 0,0 0,2.2 1.72,3.56 3.56,0 0,0 3.94,-1.61 4.41,4.41 0,0 0,0.42 -1A3.5,3.5 0,0 0,27.27 304Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M34.5,310.07a3.57,3.57 0,0 0,-0.39 -1.39,2.53 2.53,0 0,0 -1.3,-1.11 2.76,2.76 0,0 0,-1.77 -0.14,2.88 2.88,0 0,0 -1.88,1.69 4.5,4.5 0,0 0,-0.33 1.44,2.81 2.81,0 0,0 2.82,2.84l0.43,0a2.84,2.84 0,0 0,2.43 -3.21S34.5,310.1 34.5,310.07Z"
android:fillColor="#fffdfb"/>
<path
android:pathData="M90.77,349.53c-1.81,-1.19 -3.89,-1.35 -5.82,-2.33a41.93,41.93 0,0 1,-6.9 -4.69c-4.08,-3.23 -7.88,-6.9 -12.33,-9.63S56.46,327.5 52,324.5a57.26,57.26 0,0 1,-6.81 -5.2c-1.41,-1.28 -3.09,-3.36 -5.14,-3.28a2.11,2.11 0,0 0,-1.82 1c-2.23,4.52 5.37,9.4 8.28,11.61 5,3.79 10.34,7 15.57,10.41 4.81,3.16 8.89,7.4 13.47,10.88 3.6,2.74 10.62,8.24 15.21,4.84C91.78,353.59 91.12,351.28 90.77,349.53Z"
android:fillColor="#fffdfb"/>
</vector>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -13,10 +13,10 @@
android:startY="74.0"
android:type="linear">
<item
android:color="#FFF0006B"
android:color="@color/monerujoPink"
android:offset="0.0" />
<item
android:color="#FFFF6600"
android:color="@color/monerujoOrange"
android:offset="1.0" />
</gradient>
</aapt:attr>

View File

@ -17,10 +17,10 @@
android:startY="58.0"
android:type="linear">
<item
android:color="#FFF0006B"
android:color="@color/monerujoPink"
android:offset="0.0" />
<item
android:color="#FFFF6600"
android:color="@color/monerujoOrange"
android:offset="1.0" />
</gradient>
</aapt:attr>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/white" />
<solid android:color="@color/monerujoBackground" />
<padding
android:bottom="8dp"
android:left="8dp"

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<padding
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp" />
<stroke
android:width="2dp"
android:color="@color/gradientOrange" />
</shape>

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<padding
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp" />
<stroke
android:width="2dp"
android:color="@color/moneroGray" />
</shape>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/gradientOrange" />
</shape>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/moneroGray" />
</shape>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/tx_green" />
<solid android:color="@color/monerujoReceive" />
</shape>

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_disabled" android:state_enabled="false" />
<item android:drawable="@drawable/button_default" android:state_enabled="true" />
<item android:drawable="@drawable/button_default" android:state_pressed="false" />
</selector>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_disabled" android:state_enabled="false" />
<item android:drawable="@drawable/button_green" android:state_enabled="true" />
<item android:drawable="@drawable/button_green" android:state_pressed="false" />
</selector>

View File

@ -6,7 +6,7 @@
android:shape="ring"
android:thickness="8dp"
android:useLevel="false">
<solid android:color="@color/gradientOrange" />
<solid android:color="?attr/colorSecondary" />
</shape>
</item>
</layer-list>

View File

@ -6,7 +6,7 @@
android:shape="ring"
android:thickness="8dp"
android:useLevel="false">
<solid android:color="#CDD1D9" />
<solid android:color="?attr/colorSecondaryVariant" />
</shape>
</item>
</layer-list>

View File

@ -2,8 +2,8 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="45"
android:endColor="@color/gradientOrange"
android:startColor="@color/gradientPink"
android:angle="-90"
android:endColor="@color/gradientBottom"
android:startColor="@color/gradientTop"
android:type="linear" />
</shape>

View File

@ -2,8 +2,8 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<gradient
android:angle="45"
android:endColor="@color/gradientOrange"
android:startColor="@color/gradientPink"
android:angle="135"
android:endColor="@color/gradientBottom"
android:startColor="@color/gradientTop"
android:type="linear" />
</shape>

View File

@ -1,9 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="20.0"
android:viewportWidth="20.0">
android:viewportWidth="20.0"
android:viewportHeight="20.0">
<path
android:fillColor="@color/moneroFab"
android:fillColor="?colorPrimaryVariant"
android:pathData="M11,5L9,5L9,9L5,9L5,11L9,11L9,15L11,15L11,11L15,11L15,9L11,9L11,5L11,5ZM10,0C4.5,0 0,4.5 0,10C0,15.5 4.5,20 10,20C15.5,20 20,15.5 20,10C20,4.5 15.5,0 10,0L10,0ZM10,18C5.6,18 2,14.4 2,10C2,5.6 5.6,2 10,2C14.4,2 18,5.6 18,10C18,14.4 14.4,18 10,18L10,18Z" />
</vector>

View File

@ -4,6 +4,6 @@
android:viewportHeight="20.0"
android:viewportWidth="20.0">
<path
android:fillColor="@color/moneroWhite"
android:fillColor="@color/monerujoPrimary"
android:pathData="M11,5L9,5L9,9L5,9L5,11L9,11L9,15L11,15L11,11L15,11L15,9L11,9L11,5L11,5ZM10,0C4.5,0 0,4.5 0,10C0,15.5 4.5,20 10,20C15.5,20 20,15.5 20,10C20,4.5 15.5,0 10,0L10,0ZM10,18C5.6,18 2,14.4 2,10C2,5.6 5.6,2 10,2C14.4,2 18,5.6 18,10C18,14.4 14.4,18 10,18L10,18Z" />
</vector>

View File

@ -4,6 +4,6 @@
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="@color/gradientOrange"
android:fillColor="@color/gradientLeft"
android:pathData="M18.6,6.62c-1.44,0 -2.8,0.56 -3.77,1.53L12,10.66 10.48,12h0.01L7.8,14.39c-0.64,0.64 -1.49,0.99 -2.4,0.99 -1.87,0 -3.39,-1.51 -3.39,-3.38S3.53,8.62 5.4,8.62c0.91,0 1.76,0.35 2.44,1.03l1.13,1 1.51,-1.34L9.22,8.2C8.2,7.18 6.84,6.62 5.4,6.62 2.42,6.62 0,9.04 0,12s2.42,5.38 5.4,5.38c1.44,0 2.8,-0.56 3.77,-1.53l2.83,-2.5 0.01,0.01L13.52,12h-0.01l2.69,-2.39c0.64,-0.64 1.49,-0.99 2.4,-0.99 1.87,0 3.39,1.51 3.39,3.38s-1.52,3.38 -3.39,3.38c-0.9,0 -1.76,-0.35 -2.44,-1.03l-1.14,-1.01 -1.51,1.34 1.27,1.12c1.02,1.01 2.37,1.57 3.82,1.57 2.98,0 5.4,-2.41 5.4,-5.38s-2.42,-5.37 -5.4,-5.37z" />
</vector>

View File

@ -4,6 +4,6 @@
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FFffffff"
android:fillColor="@color/monerujoToolbarText"
android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z" />
</vector>

View File

@ -4,6 +4,6 @@
android:viewportHeight="74.0"
android:viewportWidth="74.0">
<path
android:fillColor="@color/gradientPink"
android:fillColor="@color/monerujoPink"
android:pathData="M21.83,29.97L16.65,35.15L33.3,51.8L70.3,14.8L65.12,9.62L33.3,41.44L21.83,29.97L21.83,29.97ZM66.6,37C66.6,53.28 53.28,66.6 37,66.6C20.72,66.6 7.4,53.28 7.4,37C7.4,20.72 20.72,7.4 37,7.4C39.96,7.4 42.55,7.77 45.14,8.51L51.06,2.59C46.62,1.11 41.81,0 37,0C16.65,0 0,16.65 0,37C0,57.35 16.65,74 37,74C57.35,74 74,57.35 74,37L66.6,37L66.6,37Z" />
</vector>

View File

@ -4,7 +4,7 @@
android:viewportHeight="58.0"
android:viewportWidth="58.0">
<path
android:fillColor="@color/gradientPink"
android:fillColor="@color/monerujoPink"
android:pathData="M17.11,23.49L13.05,27.55L26.1,40.6L55.1,11.6L51.04,7.54L26.1,32.48L17.11,23.49L17.11,23.49ZM52.2,29C52.2,41.76 41.76,52.2 29,52.2C16.24,52.2 5.8,41.76 5.8,29C5.8,16.24 16.24,5.8 29,5.8C31.32,5.8 33.35,6.09 35.38,6.67L40.02,2.03C36.54,0.87 32.77,0 29,0C13.05,0 0,13.05 0,29C0,44.95 13.05,58 29,58C44.95,58 58,44.95 58,29L52.2,29L52.2,29Z"
android:strokeColor="#00000000"
android:strokeWidth="1" />

View File

@ -4,6 +4,6 @@
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="@color/moneroFab"
android:fillColor="@color/monerujoPrimary"
android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z" />
</vector>

View File

@ -4,6 +4,6 @@
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFffffff"
android:fillColor="@color/monerujoToolbarText"
android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
</vector>

View File

@ -4,6 +4,6 @@
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFffffff"
android:fillColor="@color/btn_color_selector"
android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z"/>
</vector>

View File

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z" />
</vector>

View File

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/moneroGray"
android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z"/>
</vector>

View File

@ -4,6 +4,6 @@
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/gradientOrange"
android:fillColor="@color/btn_color_selector"
android:pathData="M19,2h-4.18C14.4,0.84 13.3,0 12,0c-1.3,0 -2.4,0.84 -2.82,2L5,2c-1.1,0 -2,0.9 -2,2v16c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L21,4c0,-1.1 -0.9,-2 -2,-2zM12,2c0.55,0 1,0.45 1,1s-0.45,1 -1,1 -1,-0.45 -1,-1 0.45,-1 1,-1zM19,20L5,20L5,4h2v3h10L17,4h2v16z" />
</vector>

View File

@ -7,7 +7,7 @@
android:translateX="0.000000"
android:translateY="+7.000000">
<path
android:fillColor="#417505"
android:fillColor="@color/monerujoGreen"
android:pathData="M17.6,1.4L16.2,0L9.9,6.3L11.3,7.7L17.6,1.4L17.6,1.4ZM21.8,0L11.3,10.6L7.1,6.4L5.7,7.8L11.3,13.4L23.3,1.4L21.8,0L21.8,0ZM0,7.8L5.6,13.4L7,12L1.4,6.4L0,7.8L0,7.8Z" />
</group>
</vector>

File diff suppressed because it is too large Load Diff

View File

@ -1,27 +1,12 @@
<!--
~ Copyright (C) 2015 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="36dp"
android:height="36dp"
android:viewportWidth="36"
android:viewportHeight="36" >
android:viewportHeight="36">
<path
android:fillColor="#f4511e"
android:fillColor="?colorError"
android:pathData="M18,18m -18, 0a 18, 18 0 1, 0 36, 0a 18, 18 0 1, 0 -36, 0" />
<path
android:fillColor="#ffffffff"
android:fillColor="?colorOnError"
android:pathData="m16.665,24.915001l2.67,0l0,2.67l-2.67,0l0,-2.67zm0,-16.5l2.67,0l0,12.67l-2.67,0l0,-12.67z" />
</vector>

View File

@ -4,6 +4,6 @@
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/gradientPink"
android:fillColor="@color/gradientRight"
android:pathData="M12,21.35l-1.45,-1.32C5.4,15.36 2,12.28 2,8.5 2,5.42 4.42,3 7.5,3c1.74,0 3.41,0.81 4.5,2.09C13.09,3.81 14.76,3 16.5,3 19.58,3 22,5.42 22,8.5c0,3.78 -3.4,6.86 -8.55,11.54L12,21.35z"/>
</vector>

Some files were not shown because too many files have changed in this diff Show More