Merge branch 'development' into Haroon
# Conflicts: # lib/config/config.dart # lib/config/localized_values.dart # lib/pages/Covid-DriveThru/covid-drivethru-location.dart # lib/pages/landing/home_page.dart # lib/pages/medical/smart_watch_health_data/health_data_list.dart # lib/pages/medical/smart_watch_health_data/smart_watch_instructions.dart # lib/uitl/translations_delegate_base.dart # pubspec.yamlmerge-update-with-lab-changes
@ -1,9 +0,0 @@
|
||||
{\rtf1\ansi\ansicpg1252\cocoartf2513
|
||||
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
{\*\expandedcolortbl;;}
|
||||
\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
|
||||
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
|
||||
|
||||
\f0\fs24 \cf0 keyPassword=HmGsa123\
|
||||
storePassword=HmGsa123}
|
||||
@ -1,11 +1,32 @@
|
||||
package com.cloud.diplomaticquarterapp
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import androidx.annotation.NonNull;
|
||||
import io.flutter.embedding.android.FlutterFragmentActivity
|
||||
import com.cloud.diplomaticquarterapp.utils.*
|
||||
import io.flutter.embedding.android.FlutterFragmentActivity
|
||||
import io.flutter.embedding.engine.FlutterEngine
|
||||
import io.flutter.plugins.GeneratedPluginRegistrant
|
||||
import io.flutter.plugin.common.MethodChannel
|
||||
import io.flutter.plugins.GeneratedPluginRegistrant
|
||||
|
||||
class MainActivity: FlutterFragmentActivity() {
|
||||
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
|
||||
GeneratedPluginRegistrant.registerWith(flutterEngine);
|
||||
}
|
||||
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
|
||||
GeneratedPluginRegistrant.registerWith(flutterEngine);
|
||||
// Create Flutter Platform Bridge
|
||||
PlatformBridge(flutterEngine.dartExecutor.binaryMessenger, this).create()
|
||||
|
||||
val time = timeToMillis("04:00:00", "HH:mm:ss")
|
||||
print(time)
|
||||
|
||||
// val d1 = Logs.list(this)
|
||||
// val d2 = Logs.raw(this)
|
||||
// val d3 = Logs.RegisterGeofence.list(this)
|
||||
// val d4 = Logs.RegisterGeofence.raw(this)
|
||||
// val d5 = Logs.GeofenceEvent.list(this)
|
||||
// val d6 = Logs.GeofenceEvent.raw(this)
|
||||
print("")
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,58 @@
|
||||
package com.cloud.diplomaticquarterapp.geofence
|
||||
|
||||
import com.google.android.gms.location.Geofence
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.reflect.TypeToken
|
||||
|
||||
class GeoZoneModel {
|
||||
var GEOF_ID:Int = 0
|
||||
var Radius:Int = 0
|
||||
var Type:Int = 0
|
||||
var ProjectID:Int = 0
|
||||
|
||||
var Description:String? = null
|
||||
var DescriptionN:String? = null
|
||||
var Latitude:String? = null
|
||||
var Longitude:String? = null
|
||||
var ImageURL:String? = null
|
||||
var IsCity:String? = null
|
||||
|
||||
fun identifier():String{
|
||||
return "$GEOF_ID" + "_hmg"
|
||||
}
|
||||
|
||||
fun message():String{
|
||||
return Description ?: "nil"
|
||||
}
|
||||
|
||||
fun listFrom(jsonString: String) : List<GeoZoneModel>{
|
||||
val type = object : TypeToken<List<GeoZoneModel?>?>() {}.getType()
|
||||
return Gson().fromJson(jsonString, type)
|
||||
}
|
||||
|
||||
fun toGeofence() : Geofence?{
|
||||
if (!Latitude.isNullOrEmpty() && !Longitude.isNullOrEmpty() && Radius > 50) {
|
||||
val lat = Latitude!!.trim().toDoubleOrNull()
|
||||
val long = Longitude!!.trim().toDoubleOrNull()
|
||||
val rad = Radius.toFloat()
|
||||
if(lat != null && long != null){
|
||||
|
||||
val loiteringDelayMinutes:Int = 2 // in Minutes
|
||||
return Geofence.Builder()
|
||||
.setRequestId(identifier())
|
||||
.setCircularRegion(
|
||||
lat,
|
||||
long,
|
||||
rad
|
||||
)
|
||||
.setTransitionTypes(GeofenceTransition.ENTER_EXIT.value)
|
||||
.setNotificationResponsiveness(0)
|
||||
.setLoiteringDelay(loiteringDelayMinutes * 60 * 1000)
|
||||
.setExpirationDuration(Geofence.NEVER_EXPIRE)
|
||||
.build()
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,241 @@
|
||||
package com.cloud.diplomaticquarterapp.geofence
|
||||
|
||||
import android.Manifest
|
||||
import android.app.PendingIntent
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.content.pm.PackageManager
|
||||
import android.location.Location
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.cloud.diplomaticquarterapp.geofence.intent_receivers.GeofenceBroadcastReceiver
|
||||
import com.cloud.diplomaticquarterapp.geofence.intent_receivers.ReregisterGeofenceJobService
|
||||
import com.cloud.diplomaticquarterapp.utils.*
|
||||
import com.google.android.gms.location.Geofence
|
||||
import com.google.android.gms.location.GeofencingClient
|
||||
import com.google.android.gms.location.GeofencingRequest
|
||||
import com.google.android.gms.location.LocationServices
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.reflect.TypeToken
|
||||
|
||||
enum class GeofenceTransition(val value: Int) {
|
||||
ENTER(1),
|
||||
EXIT(2),
|
||||
DWELL(4),
|
||||
|
||||
ENTER_EXIT((ENTER.value or EXIT.value)),
|
||||
DWELL_EXIT((DWELL.value or EXIT.value));
|
||||
|
||||
companion object {
|
||||
fun fromInt(value: Int) = GeofenceTransition.values().first { it.value == value }
|
||||
}
|
||||
|
||||
fun named():String{
|
||||
if (value == 1)return "Enter"
|
||||
if (value == 2)return "Exit"
|
||||
if (value == 4)return "dWell"
|
||||
if (value == (ENTER.value or EXIT.value))return "Enter or Exit"
|
||||
if (value == (DWELL.value or EXIT.value))return "DWell or Exit"
|
||||
return "unknown"
|
||||
}
|
||||
}
|
||||
|
||||
class HMG_Geofence {
|
||||
// https://developer.android.com/training/location/geofencing#java
|
||||
|
||||
private lateinit var context: Context
|
||||
private lateinit var preferences:SharedPreferences
|
||||
private val gson = Gson()
|
||||
|
||||
private lateinit var geofencingClient:GeofencingClient
|
||||
private val geofencePendingIntent: PendingIntent by lazy {
|
||||
val intent = Intent(context, GeofenceBroadcastReceiver::class.java)
|
||||
PendingIntent.getBroadcast(
|
||||
context,
|
||||
0,
|
||||
intent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
}
|
||||
|
||||
companion object{
|
||||
|
||||
var instance: HMG_Geofence? = null
|
||||
fun shared(context: Context) : HMG_Geofence {
|
||||
if (instance == null) {
|
||||
instance = HMG_Geofence()
|
||||
instance?.context = context
|
||||
instance?.geofencingClient = LocationServices.getGeofencingClient(context)
|
||||
instance?.preferences = context.getSharedPreferences(PREFS_STORAGE, Context.MODE_PRIVATE)
|
||||
}
|
||||
return instance!!
|
||||
}
|
||||
}
|
||||
|
||||
fun limitize(zones: List<GeoZoneModel>):List<GeoZoneModel>{
|
||||
var geoZones_ = zones
|
||||
if(zones.size > 100)
|
||||
geoZones_ = zones.subList(0, 99)
|
||||
return geoZones_
|
||||
}
|
||||
|
||||
|
||||
fun register(completion:((Boolean, java.lang.Exception?)->Unit)){
|
||||
unRegisterAll { status, exception ->
|
||||
val geoZones = getGeoZonesFromPreference(context)
|
||||
doRegister(geoZones){ status_, error ->
|
||||
completion.let { it(status_, error) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun unRegisterAll(completion: (status: Boolean, exception: Exception?) -> Unit){
|
||||
getActiveGeofences({ success ->
|
||||
removeActiveGeofences()
|
||||
if(success.isNotEmpty())
|
||||
geofencingClient
|
||||
.removeGeofences(success)
|
||||
.addOnSuccessListener {
|
||||
completion(true, null)
|
||||
}
|
||||
.addOnFailureListener {
|
||||
completion(false, it)
|
||||
saveLog(context, "error:REMOVE_GEOFENCES", it.localizedMessage)
|
||||
}
|
||||
else
|
||||
completion(true, null)
|
||||
|
||||
}, { failed ->
|
||||
// Nothing to do with failed geofences.
|
||||
})
|
||||
}
|
||||
|
||||
private fun doRegister(geoZones: List<GeoZoneModel>, completion:((Boolean, java.lang.Exception?)->Unit)? = null){
|
||||
if (geoZones.isEmpty())
|
||||
return
|
||||
|
||||
val geoZones_ = limitize(geoZones)
|
||||
|
||||
fun buildGeofencingRequest(geofences: List<Geofence>): GeofencingRequest {
|
||||
return GeofencingRequest.Builder()
|
||||
.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_DWELL)
|
||||
.addGeofences(geofences)
|
||||
.build()
|
||||
}
|
||||
|
||||
getActiveGeofences({ active ->
|
||||
|
||||
val geofences = mutableListOf<Geofence>()
|
||||
geoZones_.forEach {
|
||||
it.toGeofence()?.let { geof ->
|
||||
if (!active.contains(geof.requestId)) { // if not already registered then register
|
||||
geofences.add(geof)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (checkPermission() && geofences.isNotEmpty()) {
|
||||
geofencingClient
|
||||
.addGeofences(buildGeofencingRequest(geofences), geofencePendingIntent)
|
||||
.addOnSuccessListener {
|
||||
Logs.RegisterGeofence.save(context,"SUCCESS", "Successfuly registered the geofences", Logs.STATUS.SUCCESS)
|
||||
saveActiveGeofence(geofences.map { it.requestId }, listOf())
|
||||
completion?.let { it(true,null) }
|
||||
}
|
||||
.addOnFailureListener { exc ->
|
||||
Logs.RegisterGeofence.save(context,"FAILED_TO_REGISTER", "Failed to register geofence",Logs.STATUS.ERROR)
|
||||
completion?.let { it(false,exc) }
|
||||
}
|
||||
|
||||
// Schedule the job to register after specified duration (due to: events not calling after long period.. days or days [Needs to register fences again])
|
||||
HMGUtils.scheduleJob(context, ReregisterGeofenceJobService::class.java,ReregisterGeofenceJobService.JobID, ReregisterGeofenceJobService.TriggerIntervalDuration)
|
||||
}
|
||||
|
||||
}, null)
|
||||
|
||||
}
|
||||
|
||||
fun getGeoZonesFromPreference(context: Context):List<GeoZoneModel>{
|
||||
val pref = context.getSharedPreferences(PREFS_STORAGE, Context.MODE_PRIVATE)
|
||||
val json = pref.getString(PREF_KEY_HMG_ZONES, "[]")
|
||||
|
||||
val geoZones = GeoZoneModel().listFrom(json!!)
|
||||
return geoZones
|
||||
}
|
||||
|
||||
fun saveActiveGeofence(success: List<String>, failed: List<String>){
|
||||
val jsonSuccess = gson.toJson(success)
|
||||
val jsonFailure = gson.toJson(failed)
|
||||
preferences.edit().putString(PREF_KEY_SUCCESS, jsonSuccess).apply()
|
||||
preferences.edit().putString(PREF_KEY_FAILED, jsonFailure).apply()
|
||||
}
|
||||
|
||||
fun removeActiveGeofences(){
|
||||
preferences.edit().putString(PREF_KEY_SUCCESS, "[]").apply()
|
||||
preferences.edit().putString(PREF_KEY_FAILED, "[]").apply()
|
||||
}
|
||||
|
||||
fun getActiveGeofences(success: (success: List<String>) -> Unit, failure: ((failed: List<String>) -> Unit)?){
|
||||
val type = object : TypeToken<List<String?>?>() {}.type
|
||||
|
||||
val jsonSuccess = preferences.getString(PREF_KEY_SUCCESS, "[]")
|
||||
val success = gson.fromJson<List<String>>(jsonSuccess, type)
|
||||
success(success)
|
||||
|
||||
if(failure != null){
|
||||
val jsonFailure = preferences.getString(PREF_KEY_FAILED, "[]")
|
||||
val failed = gson.fromJson<List<String>>(jsonFailure, type)
|
||||
failure(failed)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun checkPermission() : Boolean{
|
||||
return ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
|
||||
}
|
||||
|
||||
fun getPatientID():Int?{
|
||||
var profileJson = preferences.getString("flutter.imei-user-data", null)
|
||||
if (profileJson == null)
|
||||
profileJson = preferences.getString("flutter.user-profile", null)
|
||||
|
||||
val type = object : TypeToken<Map<String?, Any?>?>() {}.type
|
||||
return gson.fromJson<Map<String?, Any?>?>(profileJson, type)
|
||||
?.get("PatientID")
|
||||
.toString()
|
||||
.toDoubleOrNull()
|
||||
?.toInt()
|
||||
}
|
||||
|
||||
|
||||
fun handleEvent(triggerGeofences: List<Geofence>, location: Location, transition: GeofenceTransition) {
|
||||
getPatientID()?.let { patientId ->
|
||||
getActiveGeofences({ activeGeofences ->
|
||||
|
||||
triggerGeofences.forEach { geofence ->
|
||||
// Extract PointID from 'geofence.requestId' and find from active geofences
|
||||
val pointID = activeGeofences.firstOrNull { it == geofence.requestId }?.split('_')?.first()
|
||||
if (!pointID.isNullOrEmpty() && pointID.toIntOrNull() != null) {
|
||||
|
||||
val body = mutableMapOf<String, Any?>(
|
||||
"PointsID" to pointID.toIntOrNull(),
|
||||
"GeoType" to transition.value,
|
||||
"PatientID" to patientId
|
||||
)
|
||||
body.putAll(HMGUtils.defaultHTTPParams(context))
|
||||
|
||||
httpPost<Map<String, Any>>(API.LOG_GEOFENCE, body, { response ->
|
||||
saveLog(context, "HMG_GEOFENCE_NOTIFY", "Success: Notified to server\uD83D\uDE0E.")
|
||||
sendNotification(context, transition.named(), geofence.requestId, "Notified to server.😎")
|
||||
}, { exception ->
|
||||
val errorMessage = "${transition.named()}, ${geofence.requestId}"
|
||||
saveLog(context, "HMG_GEOFENCE_NOTIFY", "failed: $errorMessage | error: ${exception.localizedMessage}")
|
||||
sendNotification(context, transition.named(), geofence.requestId, "Failed to notify server😔 -> ${exception.localizedMessage}")
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}, null)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
|
||||
|
||||
package com.cloud.diplomaticquarterapp.geofence.intent_receivers
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.util.Log
|
||||
import com.cloud.diplomaticquarterapp.geofence.GeofenceTransition
|
||||
import com.cloud.diplomaticquarterapp.geofence.HMG_Geofence
|
||||
import com.cloud.diplomaticquarterapp.utils.Logs
|
||||
import com.google.android.gms.location.GeofenceStatusCodes
|
||||
import com.google.android.gms.location.GeofencingEvent
|
||||
|
||||
class GeofenceBroadcastReceiver : BroadcastReceiver() {
|
||||
private val LOG_TAG = "GeofenceBroadcastReceiver"
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
|
||||
val geofencingEvent = GeofencingEvent.fromIntent(intent)
|
||||
if (geofencingEvent.hasError()) {
|
||||
val errorMessage = GeofenceErrorMessages.getErrorString(context, geofencingEvent.errorCode)
|
||||
Log.e(LOG_TAG, errorMessage)
|
||||
|
||||
Logs.GeofenceEvent.save(context,LOG_TAG,"Error while triggering geofence event",Logs.STATUS.ERROR)
|
||||
doReRegisterIfRequired(context,geofencingEvent.errorCode)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
Logs.GeofenceEvent.save(context,LOG_TAG,"Geofence event triggered: ${GeofenceTransition.fromInt(geofencingEvent.geofenceTransition).value} for ${geofencingEvent.triggeringGeofences.map {it.requestId}}",Logs.STATUS.SUCCESS)
|
||||
HMG_Geofence.shared(context).handleEvent(geofencingEvent.triggeringGeofences,geofencingEvent.triggeringLocation, GeofenceTransition.fromInt(geofencingEvent.geofenceTransition));
|
||||
|
||||
}
|
||||
|
||||
fun doReRegisterIfRequired(context: Context, errorCode: Int){
|
||||
val errorRequiredReregister = listOf(
|
||||
GeofenceStatusCodes.GEOFENCE_NOT_AVAILABLE,
|
||||
GeofenceStatusCodes.GEOFENCE_TOO_MANY_GEOFENCES,
|
||||
GeofenceStatusCodes.GEOFENCE_TOO_MANY_PENDING_INTENTS,
|
||||
GeofenceStatusCodes.GEOFENCE_REQUEST_TOO_FREQUENT
|
||||
)
|
||||
|
||||
if(errorRequiredReregister.contains(errorCode))
|
||||
HMG_Geofence.shared(context).register(){ status, error ->
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
|
||||
|
||||
package com.cloud.diplomaticquarterapp.geofence.intent_receivers
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.cloud.diplomaticquarterapp.geofence.HMG_Geofence
|
||||
import com.google.android.gms.location.GeofenceStatusCodes
|
||||
|
||||
class GeofenceBroadcastReceiverWithJobService : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
GeofenceTransitionsJobIntentService.enqueueWork(context, intent)
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
|
||||
|
||||
package com.cloud.diplomaticquarterapp.geofence.intent_receivers
|
||||
|
||||
import android.content.Context
|
||||
import com.cloud.diplomaticquarterapp.R
|
||||
import com.cloud.diplomaticquarterapp.geofence.HMG_Geofence
|
||||
import com.google.android.gms.common.api.ApiException
|
||||
import com.google.android.gms.location.GeofenceStatusCodes
|
||||
|
||||
object GeofenceErrorMessages {
|
||||
fun getErrorString(context: Context, e: Exception): String {
|
||||
return if (e is ApiException) {
|
||||
getErrorString(context, e.statusCode)
|
||||
} else {
|
||||
context.resources.getString(R.string.geofence_unknown_error)
|
||||
}
|
||||
}
|
||||
|
||||
fun getErrorString(context: Context, errorCode: Int): String {
|
||||
val resources = context.resources
|
||||
val errorMessage = when (errorCode) {
|
||||
GeofenceStatusCodes.GEOFENCE_NOT_AVAILABLE ->
|
||||
resources.getString(R.string.geofence_not_available)
|
||||
|
||||
GeofenceStatusCodes.GEOFENCE_TOO_MANY_GEOFENCES ->
|
||||
resources.getString(R.string.geofence_too_many_geofences)
|
||||
|
||||
GeofenceStatusCodes.GEOFENCE_TOO_MANY_PENDING_INTENTS ->
|
||||
resources.getString(R.string.geofence_too_many_pending_intents)
|
||||
|
||||
GeofenceStatusCodes.GEOFENCE_INSUFFICIENT_LOCATION_PERMISSION ->
|
||||
resources.getString(R.string.GEOFENCE_INSUFFICIENT_LOCATION_PERMISSION)
|
||||
|
||||
GeofenceStatusCodes.GEOFENCE_REQUEST_TOO_FREQUENT ->
|
||||
resources.getString(R.string.GEOFENCE_REQUEST_TOO_FREQUENT)
|
||||
|
||||
else -> resources.getString(R.string.geofence_unknown_error)
|
||||
}
|
||||
|
||||
return errorMessage
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,90 @@
|
||||
/*
|
||||
* Copyright (c) 2018 Razeware LLC
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Notwithstanding the foregoing, you may not use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, create a derivative work, and/or sell copies of the
|
||||
* Software in any work that is designed, intended, or marketed for pedagogical or
|
||||
* instructional purposes related to programming, coding, application development,
|
||||
* or information technology. Permission for such use, copying, modification,
|
||||
* merger, publication, distribution, sublicensing, creation of derivative works,
|
||||
* or sale is expressly withheld.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package com.cloud.diplomaticquarterapp.geofence.intent_receivers
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.util.Log
|
||||
import androidx.core.app.JobIntentService
|
||||
import com.cloud.diplomaticquarterapp.geofence.GeofenceTransition
|
||||
import com.cloud.diplomaticquarterapp.geofence.HMG_Geofence
|
||||
import com.cloud.diplomaticquarterapp.utils.saveLog
|
||||
import com.google.android.gms.location.GeofenceStatusCodes
|
||||
import com.google.android.gms.location.GeofencingEvent
|
||||
|
||||
class GeofenceTransitionsJobIntentService : JobIntentService() {
|
||||
|
||||
companion object {
|
||||
private const val LOG_TAG = "GeoTrIntentService"
|
||||
|
||||
private const val JOB_ID = 95902
|
||||
var context_: Context? = null
|
||||
fun enqueueWork(context: Context, intent: Intent) {
|
||||
context_ = context
|
||||
enqueueWork(
|
||||
context,
|
||||
GeofenceTransitionsJobIntentService::class.java, JOB_ID,
|
||||
intent)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onHandleWork(intent: Intent) {
|
||||
val geofencingEvent = GeofencingEvent.fromIntent(intent)
|
||||
if (geofencingEvent.hasError()) {
|
||||
val errorMessage = GeofenceErrorMessages.getErrorString(context_!!, geofencingEvent.errorCode)
|
||||
Log.e(LOG_TAG, errorMessage)
|
||||
|
||||
|
||||
saveLog(context_!!,LOG_TAG,errorMessage)
|
||||
doReRegisterIfRequired(context_!!, geofencingEvent.errorCode)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
HMG_Geofence.shared(context_!!).handleEvent(geofencingEvent.triggeringGeofences,geofencingEvent.triggeringLocation, GeofenceTransition.fromInt(geofencingEvent.geofenceTransition));
|
||||
|
||||
}
|
||||
|
||||
|
||||
fun doReRegisterIfRequired(context: Context, errorCode: Int){
|
||||
val errorRequiredReregister = listOf(
|
||||
GeofenceStatusCodes.GEOFENCE_NOT_AVAILABLE,
|
||||
GeofenceStatusCodes.GEOFENCE_TOO_MANY_GEOFENCES,
|
||||
GeofenceStatusCodes.GEOFENCE_TOO_MANY_PENDING_INTENTS,
|
||||
GeofenceStatusCodes.GEOFENCE_REQUEST_TOO_FREQUENT
|
||||
)
|
||||
|
||||
if(errorRequiredReregister.contains(errorCode))
|
||||
HMG_Geofence.shared(context).register(){ status, exc -> }
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
|
||||
|
||||
package com.cloud.diplomaticquarterapp.geofence.intent_receivers
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.cloud.diplomaticquarterapp.geofence.HMG_Geofence
|
||||
import com.cloud.diplomaticquarterapp.utils.PREFS_STORAGE
|
||||
|
||||
class GeofencingRebootBroadcastReceiver : BroadcastReceiver(){
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
|
||||
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.action)) {
|
||||
// if (intent.action.equals("android.intent.action.BOOT_COMPLETE")) {
|
||||
val pref = context.getSharedPreferences(PREFS_STORAGE, Context.MODE_PRIVATE)
|
||||
pref.edit().putString("REBOOT_DETECTED","YES").apply()
|
||||
|
||||
HMG_Geofence.shared(context).register(){ status, error -> }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
|
||||
|
||||
package com.cloud.diplomaticquarterapp.geofence.intent_receivers
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.location.LocationManager
|
||||
import com.cloud.diplomaticquarterapp.geofence.HMG_Geofence
|
||||
import com.cloud.diplomaticquarterapp.utils.HMGUtils
|
||||
import com.cloud.diplomaticquarterapp.utils.PREFS_STORAGE
|
||||
|
||||
class LocationProviderChangeReceiver : BroadcastReceiver() {
|
||||
private val LOG_TAG = "LocationProviderChangeReceiver"
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
|
||||
if (LocationManager.PROVIDERS_CHANGED_ACTION.equals(intent.action)) {
|
||||
val pref = context.getSharedPreferences(PREFS_STORAGE, Context.MODE_PRIVATE)
|
||||
pref.edit().putString("LOCATION_PROVIDER_CHANGE","YES").apply()
|
||||
|
||||
HMG_Geofence.shared(context).register(){ s, e -> }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package com.cloud.diplomaticquarterapp.geofence.intent_receivers
|
||||
|
||||
import android.app.job.JobParameters
|
||||
import android.app.job.JobService
|
||||
import com.cloud.diplomaticquarterapp.geofence.HMG_Geofence
|
||||
import com.cloud.diplomaticquarterapp.utils.Logs
|
||||
|
||||
class ReregisterGeofenceJobService : JobService(){
|
||||
companion object{
|
||||
val TriggerIntervalDuration:String = "06:00:00"
|
||||
val JobID = 918273
|
||||
}
|
||||
override fun onStartJob(params: JobParameters?): Boolean {
|
||||
Logs.save(applicationContext,"ReregisterGeofenceJobService.onStartJob", "triggered to re-register the geofences after $TriggerIntervalDuration >> [HH:mm:ss]")
|
||||
HMG_Geofence.shared(applicationContext).register(){ status, error ->
|
||||
jobFinished(params, true)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onStopJob(params: JobParameters?): Boolean {
|
||||
return true
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,172 @@
|
||||
package com.cloud.diplomaticquarterapp.hmgwifi
|
||||
|
||||
import android.content.Context
|
||||
import android.net.ConnectivityManager
|
||||
import android.net.wifi.WifiConfiguration
|
||||
import android.net.wifi.WifiInfo
|
||||
import android.net.wifi.WifiManager
|
||||
import android.os.Build
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import com.cloud.diplomaticquarterapp.MainActivity
|
||||
import com.cloud.diplomaticquarterapp.utils.FlutterText
|
||||
import com.cloud.diplomaticquarterapp.utils.HMGUtils
|
||||
|
||||
|
||||
class HMG_Guest(context: MainActivity) {
|
||||
private var wifiManager: WifiManager? = context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager?
|
||||
private var connectivityManager: ConnectivityManager? = context.applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager?
|
||||
private var context = context
|
||||
|
||||
private val TAG = "HMG_Guest"
|
||||
private val TEST = false
|
||||
private var SSID = """"HMG-MobileApp""""
|
||||
|
||||
private lateinit var completionListener: ((status: Boolean, message: String) -> Unit)
|
||||
|
||||
fun completionOnUiThread(status: Boolean, message: String){
|
||||
completionListener(status, message)
|
||||
}
|
||||
|
||||
/*
|
||||
* Helpful:
|
||||
* http://stackoverflow.com/questions/8818290/how-to-connect-to-a-specific-wifi-network-in-android-programmatically
|
||||
*/
|
||||
fun connectToHMGGuestNetwork(completion: (status: Boolean, message: String) -> Unit) {
|
||||
wifiManager?.let { wm ->
|
||||
completionListener = completion
|
||||
|
||||
if (!wm.isWifiEnabled){
|
||||
wm.isWifiEnabled = true
|
||||
HMGUtils.popFlutterText(context,"enablingWifi");
|
||||
HMGUtils.timer(2000,false){
|
||||
connect()
|
||||
}
|
||||
}else{
|
||||
connect()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private fun connect(){
|
||||
val security = "OPEN"
|
||||
val networkPass = ""
|
||||
Log.d(TAG, "Connecting to SSID \"$SSID\" with password \"$networkPass\" and with security \"$security\" ...")
|
||||
|
||||
// You need to create WifiConfiguration instance like this:
|
||||
val conf = WifiConfiguration()
|
||||
conf.SSID = SSID
|
||||
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE)
|
||||
conf.networkId = ssidToNetworkId(SSID)
|
||||
|
||||
val wm = wifiManager!!
|
||||
|
||||
if (conf.networkId == -1) {
|
||||
wm.addNetwork(conf)
|
||||
} else {
|
||||
Log.v(TAG, "WiFi found - updating it.\n")
|
||||
wm.updateNetwork(conf)
|
||||
}
|
||||
|
||||
conf.networkId = ssidToNetworkId(SSID)
|
||||
Log.d(TAG, "Network ID: ${conf.networkId}")
|
||||
|
||||
val networkIdToConnect = conf.networkId
|
||||
if (networkIdToConnect >= 0) {
|
||||
Log.v(TAG, "Start connecting to $SSID Wifi...")
|
||||
|
||||
// We disable the network before connecting, because if this was the last connection before
|
||||
// a disconnect(), this will not reconnect.
|
||||
wm.disableNetwork(networkIdToConnect)
|
||||
val result = wm.enableNetwork(networkIdToConnect, true)
|
||||
if(result){
|
||||
HMGUtils.timer(8000,false){
|
||||
if(wm.getConnectionInfo().getSSID() == SSID){
|
||||
completionOnUiThread(true, "successConnectingHmgNetwork")
|
||||
|
||||
}else{
|
||||
errorConnecting()
|
||||
}
|
||||
}
|
||||
|
||||
}else{
|
||||
errorConnecting()
|
||||
}
|
||||
|
||||
|
||||
|
||||
}else{
|
||||
Log.v(TAG, "Cannot connect to $SSID network")
|
||||
errorConnecting()
|
||||
}
|
||||
}
|
||||
|
||||
private fun errorConnecting(){
|
||||
completionOnUiThread(false, "errorConnectingHmgNetwork")
|
||||
}
|
||||
|
||||
// If CompileSDK is greater and equals to APILevel 29
|
||||
private fun connectNewer(wm:WifiManager){
|
||||
|
||||
// Log.e(TAG, "connection wifi Q")
|
||||
//
|
||||
// val wifiNetworkSpecifier: WifiNetworkSpecifier = WifiNetworkSpecifier.Builder()
|
||||
// .setSsid(ssid)
|
||||
// .setWpa2Passphrase(password)
|
||||
// .build()
|
||||
//
|
||||
// val networkRequest: NetworkRequest = NetworkRequest.Builder()
|
||||
// .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
|
||||
// .setNetworkSpecifier(wifiNetworkSpecifier)
|
||||
// .build()
|
||||
//
|
||||
// var connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
||||
// var networkCallback = object : ConnectivityManager.NetworkCallback() {
|
||||
// override fun onAvailable(network: Network) {
|
||||
// super.onAvailable(network)
|
||||
// connectivityManager.bindProcessToNetwork(network)
|
||||
// Log.e(TAG, "onAvailable")
|
||||
// }
|
||||
//
|
||||
// override fun onLosing(network: Network, maxMsToLive: Int) {
|
||||
// super.onLosing(network, maxMsToLive)
|
||||
// Log.e(TAG, "onLosing")
|
||||
// }
|
||||
//
|
||||
// override fun onLost(network: Network) {
|
||||
// super.onLost(network)
|
||||
// Log.e(TAG, "onLosing")
|
||||
// Log.e(TAG, "losing active connection")
|
||||
// }
|
||||
//
|
||||
// override fun onUnavailable() {
|
||||
// super.onUnavailable()
|
||||
// Log.e(TAG, "onUnavailable")
|
||||
// }
|
||||
// }
|
||||
// connectivityManager.requestNetwork(networkRequest, networkCallback)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method takes a given String, searches the current list of configured WiFi
|
||||
* networks, and returns the networkId for the network if the SSID matches. If not,
|
||||
* it returns -1.
|
||||
*/
|
||||
private fun ssidToNetworkId(ssid: String): Int {
|
||||
val currentNetworks = wifiManager!!.configuredNetworks
|
||||
var networkId = -1
|
||||
|
||||
// For each network in the list, compare the SSID with the given one
|
||||
for (test in currentNetworks) {
|
||||
if (test.SSID == ssid) {
|
||||
networkId = test.networkId
|
||||
break
|
||||
}
|
||||
}
|
||||
return networkId
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,110 @@
|
||||
package com.cloud.diplomaticquarterapp.hmgwifi
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import com.cloud.diplomaticquarterapp.utils.API
|
||||
import com.cloud.diplomaticquarterapp.MainActivity
|
||||
import com.cloud.diplomaticquarterapp.utils.FlutterText
|
||||
import com.github.kittinunf.fuel.core.extensions.jsonBody
|
||||
import com.github.kittinunf.fuel.httpGet
|
||||
import com.github.kittinunf.fuel.httpPost
|
||||
import org.json.JSONObject
|
||||
import java.util.*
|
||||
|
||||
|
||||
@SuppressLint("MissingPermission")
|
||||
class HMG_Internet(flutterMainActivity: MainActivity) {
|
||||
private val TAG = "HMG_Wifi"
|
||||
private val TEST = false
|
||||
|
||||
private var context = flutterMainActivity;
|
||||
|
||||
private lateinit var completionListener: ((status: Boolean, message: String) -> Unit)
|
||||
|
||||
private var SSID = "GUEST-POC"
|
||||
private var USER_NAME = ""
|
||||
private var PASSWORD = ""
|
||||
|
||||
fun completionOnUiThread(status: Boolean, message: String){
|
||||
completionListener(status, message)
|
||||
// context.runOnUiThread {
|
||||
//
|
||||
// FlutterText.with(message){localized ->
|
||||
// completionListener(status, localized)
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
/*
|
||||
* Helpful:
|
||||
* http://stackoverflow.com/questions/8818290/how-to-connect-to-a-specific-wifi-network-in-android-programmatically
|
||||
*/
|
||||
fun connectToHMGGuestNetwork(patientId: String, completion: (status: Boolean, message: String) -> Unit): HMG_Internet {
|
||||
completionListener = completion
|
||||
getWifiCredentials(patientId) {
|
||||
WPA(context,SSID).connect(USER_NAME,PASSWORD) { status, message ->
|
||||
completionOnUiThread(status,message)
|
||||
}
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
private fun haveInternet(completion: ((status: Boolean) -> Unit)){
|
||||
if (TEST)
|
||||
completion(true)
|
||||
|
||||
"https://captive.apple.com".httpGet().response { request, response, result ->
|
||||
result.fold(success = {
|
||||
val html = String(it).toLowerCase(Locale.ENGLISH)
|
||||
.replace(" ", "", true)
|
||||
.replace("\n","",true)
|
||||
val have = html.contains("<title>success</title>", true)
|
||||
completion(have)
|
||||
|
||||
},failure = {
|
||||
completion(false)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
private fun getWifiCredentials(patientId:String, success: (() -> Unit)){
|
||||
if (TEST){
|
||||
SSID = "GUEST-POC"
|
||||
USER_NAME = "0696"
|
||||
PASSWORD = "0000"
|
||||
success()
|
||||
return
|
||||
}
|
||||
|
||||
val jsonBody = """{"PatientID":$patientId}"""
|
||||
API.WIFI_CREDENTIALS.
|
||||
httpPost()
|
||||
.jsonBody(jsonBody, Charsets.UTF_8)
|
||||
.response { request, response, result ->
|
||||
|
||||
result.fold(success = { data ->
|
||||
val jsonString = String(data)
|
||||
val jsonObject = JSONObject(jsonString)
|
||||
if(!jsonObject.getString("ErrorMessage").equals("null")){
|
||||
val errorMsg = jsonObject.getString("ErrorMessage")
|
||||
completionOnUiThread(false, errorMsg)
|
||||
|
||||
}else{
|
||||
jsonObject.getJSONArray("Hmg_SMS_Get_By_ProjectID_And_PatientIDList").let { array ->
|
||||
array.getJSONObject(0).let { object_ ->
|
||||
if (object_.has("UserName") && object_.has("UserName")){
|
||||
USER_NAME = object_.getString("UserName")
|
||||
PASSWORD = object_.getString("Password")
|
||||
success()
|
||||
}else{
|
||||
completionOnUiThread(false, "somethingWentWrong")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
},failure = { error ->
|
||||
completionOnUiThread(false, "somethingWentWrong" )
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,105 @@
|
||||
package com.cloud.diplomaticquarterapp.hmgwifi
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.net.ConnectivityManager
|
||||
import android.net.wifi.*
|
||||
import android.net.wifi.SupplicantState.ASSOCIATED
|
||||
import android.net.wifi.SupplicantState.COMPLETED
|
||||
import android.util.Log
|
||||
import com.cloud.diplomaticquarterapp.MainActivity
|
||||
import com.cloud.diplomaticquarterapp.utils.HMGUtils
|
||||
|
||||
class WPA(mainActivity: MainActivity, SSID:String) {
|
||||
private var TAG = "WPA"
|
||||
private var SSID = "GUEST-POC"
|
||||
private var wifiManager_: WifiManager? = null
|
||||
private var connectivityManager_: ConnectivityManager? = null
|
||||
|
||||
init {
|
||||
wifiManager_ = mainActivity.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager?
|
||||
connectivityManager_ = mainActivity.applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager?
|
||||
}
|
||||
|
||||
fun connect(identity:String, password:String, completion: (status: Boolean, message: String) -> Unit) {
|
||||
if(wifiManager_ == null || connectivityManager_ == null){
|
||||
completion(false,"errorConnectingHmgNetwork")
|
||||
return
|
||||
}
|
||||
|
||||
val wifiManager = wifiManager_!!
|
||||
val connectivityManager = connectivityManager_!!
|
||||
|
||||
// Initialize the WifiConfiguration object
|
||||
val enterpriseConfig = WifiEnterpriseConfig()
|
||||
val wifi = WifiConfiguration()
|
||||
wifi.SSID = """"$SSID""""
|
||||
wifi.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP)
|
||||
wifi.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X)
|
||||
enterpriseConfig.eapMethod = WifiEnterpriseConfig.Eap.PEAP
|
||||
enterpriseConfig.identity = identity
|
||||
enterpriseConfig.password = password
|
||||
wifi.enterpriseConfig = enterpriseConfig
|
||||
wifi.networkId = ssidToNetworkId(wifi.SSID)
|
||||
if (wifi.networkId == -1) {
|
||||
wifiManager.addNetwork(wifi)
|
||||
} else {
|
||||
Log.v(TAG, "WiFi found - updating it.\n")
|
||||
wifiManager.updateNetwork(wifi)
|
||||
}
|
||||
Log.v(TAG, "saving config.\n")
|
||||
wifiManager.saveConfiguration()
|
||||
wifi.networkId = ssidToNetworkId(wifi.SSID)
|
||||
|
||||
Log.v(TAG, "wifi ID in device = " + wifi.networkId)
|
||||
|
||||
var supState: SupplicantState
|
||||
val networkIdToConnect = wifi.networkId
|
||||
if (networkIdToConnect >= 0) {
|
||||
Log.v(TAG, "Start connecting...\n")
|
||||
|
||||
// We disable the network before connecting, because if this was the last connection before
|
||||
// a disconnect(), this will not reconnect.
|
||||
wifiManager.disableNetwork(networkIdToConnect)
|
||||
wifiManager.enableNetwork(networkIdToConnect, true)
|
||||
|
||||
val wifiInfo: WifiInfo = wifiManager.connectionInfo
|
||||
|
||||
HMGUtils.timer(5000,false){
|
||||
supState = wifiInfo.supplicantState
|
||||
Log.i(TAG, "WifiWizard: Done connect to network : status = $supState")
|
||||
val successStates = listOf(COMPLETED, ASSOCIATED)
|
||||
if (successStates.contains(COMPLETED /*supState*/))
|
||||
|
||||
completion(true,"Connected to internet Wifi")
|
||||
|
||||
else
|
||||
completion(false,"errorConnectingHmgNetwork")
|
||||
}
|
||||
|
||||
} else {
|
||||
Log.v(TAG, "WifiWizard: cannot connect to network")
|
||||
completion(false,"errorConnectingHmgNetwork")
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This method takes a given String, searches the current list of configured WiFi
|
||||
* networks, and returns the networkId for the network if the SSID matches. If not,
|
||||
* it returns -1.
|
||||
*/
|
||||
@SuppressLint("MissingPermission")
|
||||
private fun ssidToNetworkId(ssid: String): Int {
|
||||
val currentNetworks = wifiManager_!!.configuredNetworks
|
||||
var networkId = -1
|
||||
|
||||
// For each network in the list, compare the SSID with the given one
|
||||
for (test in currentNetworks) {
|
||||
if (test.SSID == ssid) {
|
||||
networkId = test.networkId
|
||||
break
|
||||
}
|
||||
}
|
||||
return networkId
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
package com.cloud.diplomaticquarterapp.utils
|
||||
|
||||
class API {
|
||||
companion object{
|
||||
private val BASE = "https://hmgwebservices.com"
|
||||
private val SERVICE = "Services/Patients.svc/REST"
|
||||
|
||||
val WIFI_CREDENTIALS = "$BASE/$SERVICE/Hmg_SMS_Get_By_ProjectID_And_PatientID"
|
||||
val LOG_GEOFENCE = "$BASE/$SERVICE/GeoF_InsertPatientFileInfo"
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
package com.cloud.diplomaticquarterapp.utils
|
||||
|
||||
|
||||
const val PREFS_STORAGE = "FlutterSharedPreferences"
|
||||
const val PREF_KEY_SUCCESS = "HMG_GEOFENCE_SUCCESS"
|
||||
const val PREF_KEY_FAILED = "HMG_GEOFENCE_FAILED"
|
||||
const val PREF_KEY_HMG_ZONES = "flutter.hmg-geo-fences"
|
||||
const val PREF_KEY_LANGUAGE = "flutter.language"
|
||||
@ -0,0 +1,36 @@
|
||||
package com.cloud.diplomaticquarterapp.utils
|
||||
|
||||
import io.flutter.plugin.common.MethodChannel
|
||||
import io.flutter.plugin.common.MethodChannel.Result
|
||||
|
||||
class FlutterText{
|
||||
|
||||
companion object{
|
||||
fun with(key:String, completion:(String)->Unit){
|
||||
HMGUtils.getPlatformChannel().invokeMethod("localizedValue",key, object:MethodChannel.Result{
|
||||
override fun success(result: Any?) {
|
||||
val localized = result as String?
|
||||
if (localized != null){
|
||||
completion(localized)
|
||||
}else{
|
||||
completion(key)
|
||||
}
|
||||
}
|
||||
|
||||
override fun error(errorCode: String?, errorMessage: String?, errorDetails: Any?) {
|
||||
completion(key)
|
||||
require(false){
|
||||
"'localizedValue' $errorMessage"
|
||||
}
|
||||
}
|
||||
|
||||
override fun notImplemented() {
|
||||
require(false){
|
||||
"'localizedValue' method not implemented at flutter"
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,225 @@
|
||||
package com.cloud.diplomaticquarterapp.utils
|
||||
|
||||
import android.app.NotificationChannel
|
||||
import android.app.NotificationManager
|
||||
import android.app.PendingIntent
|
||||
import android.app.job.JobInfo
|
||||
import android.app.job.JobScheduler
|
||||
import android.content.ComponentName
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.Nullable
|
||||
import androidx.core.app.NotificationCompat
|
||||
import androidx.core.app.TaskStackBuilder
|
||||
import com.cloud.diplomaticquarterapp.BuildConfig
|
||||
import com.cloud.diplomaticquarterapp.MainActivity
|
||||
import com.cloud.diplomaticquarterapp.R
|
||||
import com.cloud.diplomaticquarterapp.geofence.GeoZoneModel
|
||||
import com.github.kittinunf.fuel.core.extensions.jsonBody
|
||||
import com.github.kittinunf.fuel.httpPost
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.reflect.TypeToken
|
||||
import io.flutter.plugin.common.MethodChannel
|
||||
import org.jetbrains.anko.doAsyncResult
|
||||
import org.json.JSONArray
|
||||
import org.json.JSONException
|
||||
import org.json.JSONObject
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import kotlin.concurrent.timerTask
|
||||
|
||||
|
||||
class HMGUtils {
|
||||
|
||||
companion object{
|
||||
private lateinit var platformChannel: MethodChannel
|
||||
fun getPlatformChannel():MethodChannel{
|
||||
return platformChannel
|
||||
}
|
||||
fun setPlatformChannel(channel: MethodChannel){
|
||||
platformChannel = channel
|
||||
}
|
||||
|
||||
fun timer(delay: Long, repeat: Boolean, tick: (Timer) -> Unit) : Timer{
|
||||
val timer = Timer()
|
||||
if(repeat)
|
||||
timer.schedule(timerTask {
|
||||
tick(timer)
|
||||
}, delay, delay)
|
||||
else
|
||||
timer.schedule(timerTask {
|
||||
tick(timer)
|
||||
}, delay)
|
||||
|
||||
return timer
|
||||
}
|
||||
|
||||
fun popMessage(context: MainActivity, message: String){
|
||||
context.runOnUiThread {
|
||||
Toast.makeText(context, message, Toast.LENGTH_LONG).show()
|
||||
}
|
||||
}
|
||||
|
||||
fun popFlutterText(context: MainActivity, key: String){
|
||||
context.runOnUiThread {
|
||||
FlutterText.with(key){
|
||||
Toast.makeText(context, it, Toast.LENGTH_LONG).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun getLanguageCode(context: Context) : Int {
|
||||
val pref = context.getSharedPreferences(PREFS_STORAGE, Context.MODE_PRIVATE)
|
||||
val lang = pref.getString(PREF_KEY_LANGUAGE, "ar")
|
||||
return if (lang == "ar") 2 else 1
|
||||
}
|
||||
|
||||
fun defaultHTTPParams(context: Context) : Map<String, Any?>{
|
||||
return mapOf(
|
||||
"ZipCode" to "966",
|
||||
"VersionID" to 5.8,
|
||||
"Channel" to 3,
|
||||
"LanguageID" to getLanguageCode(context),
|
||||
"IPAdress" to "10.20.10.20",
|
||||
"generalid" to "Cs2020@2016$2958",
|
||||
"PatientOutSA" to 0,
|
||||
"SessionID" to null,
|
||||
"isDentalAllowedBackend" to false,
|
||||
"DeviceTypeID" to 2)
|
||||
}
|
||||
|
||||
|
||||
fun <T>scheduleJob(context: Context, pendingIntentClassType:Class<T>, jobId:Int, intervalDuration:String, deadlineMillis:Long = (30 * 1000)) { // default deadline: 30 Seconds
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
|
||||
val jobScheduler: JobScheduler = context.getSystemService(JobScheduler::class.java)
|
||||
|
||||
val serviceComponent = ComponentName(context, pendingIntentClassType)
|
||||
val builder = JobInfo.Builder(jobId, serviceComponent)
|
||||
builder.setPersisted(true)
|
||||
builder.setBackoffCriteria(30000, JobInfo.BACKOFF_POLICY_LINEAR)
|
||||
|
||||
val intervalMillis = timeToMillis(intervalDuration,"HH:mm:ss")
|
||||
builder.setMinimumLatency(intervalMillis) // wait at least
|
||||
builder.setOverrideDeadline((intervalMillis + deadlineMillis)) // maximum delay
|
||||
if (jobScheduler.schedule(builder.build()) == JobScheduler.RESULT_SUCCESS){
|
||||
Logs.save(context,"ScheduleJob", "${pendingIntentClassType.simpleName}: Job scheduled to trigger after duration $intervalDuration >> HH:mm:ss --('MinimumLatency:$intervalMillis Deadline:${(intervalMillis + deadlineMillis)}')--",Logs.STATUS.SUCCESS)
|
||||
}else{
|
||||
Logs.save(context,"ScheduleJob", "${pendingIntentClassType.simpleName}: Failed to scheduled Job",Logs.STATUS.ERROR)
|
||||
}
|
||||
|
||||
} else {
|
||||
Logs.save(context,"ScheduleJob", "${pendingIntentClassType.simpleName}: Failed to scheduled Job on VERSION.SDK_INT < ${android.os.Build.VERSION_CODES.M}",Logs.STATUS.ERROR)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private const val NOTIFICATION_CHANNEL_ID = BuildConfig.APPLICATION_ID + ".channel"
|
||||
|
||||
|
||||
fun timeToMillis(time:String, format:String):Long{
|
||||
val sdf = SimpleDateFormat(format, Locale.US)
|
||||
val millis = sdf.parse(time).time + TimeZone.getDefault().rawOffset
|
||||
return millis
|
||||
}
|
||||
|
||||
fun sendNotification(context: Context, title: String, @Nullable subtitle: String?, message: String?) {
|
||||
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
|
||||
&& notificationManager.getNotificationChannel(NOTIFICATION_CHANNEL_ID) == null) {
|
||||
val name = context.getString(R.string.app_name)
|
||||
val channel = NotificationChannel(NOTIFICATION_CHANNEL_ID,
|
||||
name,
|
||||
NotificationManager.IMPORTANCE_DEFAULT)
|
||||
|
||||
notificationManager.createNotificationChannel(channel)
|
||||
}
|
||||
|
||||
val intent = Intent(context, MainActivity::class.java)
|
||||
|
||||
val stackBuilder = TaskStackBuilder.create(context)
|
||||
.addParentStack(MainActivity::class.java)
|
||||
.addNextIntent(intent)
|
||||
val notificationPendingIntent = stackBuilder.getPendingIntent(getUniqueId(), PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
|
||||
val notification = NotificationCompat.Builder(context, NOTIFICATION_CHANNEL_ID)
|
||||
.setSmallIcon(R.mipmap.ic_launcher)
|
||||
.setContentIntent(notificationPendingIntent)
|
||||
.setAutoCancel(true)
|
||||
.setContentTitle(title)
|
||||
|
||||
subtitle.let { notification.setContentText(it) }
|
||||
message.let { notification.setSubText(it) }
|
||||
|
||||
notificationManager.notify(getUniqueId(), notification.build())
|
||||
}
|
||||
|
||||
//-------------------------
|
||||
// Open Helper Methods
|
||||
//-------------------------
|
||||
fun getUniqueId() = ((System.currentTimeMillis() % 10000).toInt())
|
||||
|
||||
object DateUtils {
|
||||
@JvmStatic
|
||||
fun dateTimeNow() : String {
|
||||
val format = SimpleDateFormat("dd-MMM-yyy hh:mm:ss")
|
||||
return format.format(Date())
|
||||
}
|
||||
}
|
||||
|
||||
fun isJSONValid(jsonString: String?): Boolean {
|
||||
try { JSONObject(jsonString) } catch (ex: JSONException) {
|
||||
try { JSONArray(jsonString) } catch (ex1: JSONException) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
fun saveLog(context: Context, tag: String, message: String){
|
||||
val pref = context.getSharedPreferences(PREFS_STORAGE, Context.MODE_PRIVATE)
|
||||
var logs = pref.getString("LOGS", "")
|
||||
logs += "$tag -> $message \n"
|
||||
pref.edit().putString("LOGS", logs).apply();
|
||||
}
|
||||
|
||||
fun getLogs(context: Context) : String?{
|
||||
val pref = context.getSharedPreferences(PREFS_STORAGE, Context.MODE_PRIVATE)
|
||||
return pref.getString("LOGS", "")
|
||||
}
|
||||
|
||||
class HTTPResponse<T>(data: T){
|
||||
final var data:T = data
|
||||
}
|
||||
|
||||
fun <T>httpPost(url: String, body: Map<String, Any?>, onSuccess: (response: HTTPResponse<T>) -> Unit, onError: (error: Exception) -> Unit){
|
||||
val gson = Gson()
|
||||
val type = object : TypeToken<T>() {}.type
|
||||
val jsonBody = gson.toJson(body)
|
||||
url.httpPost()
|
||||
.jsonBody(jsonBody, Charsets.UTF_8)
|
||||
.timeout(10000)
|
||||
.header("Content-Type", "application/json")
|
||||
.header("Allow", "*/*")
|
||||
.response { request, response, result ->
|
||||
result.doAsyncResult { }
|
||||
result.fold({ data ->
|
||||
val dataString = String(data)
|
||||
if (isJSONValid(dataString)) {
|
||||
val responseData = gson.fromJson<T>(dataString, type)
|
||||
onSuccess(HTTPResponse(responseData))
|
||||
} else {
|
||||
onError(Exception("Invalid response from server (Not a valid JSON)"))
|
||||
}
|
||||
}, {
|
||||
onError(it)
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,351 @@
|
||||
//package com.cloud.diplomaticquarterapp.utils
|
||||
//
|
||||
//import android.annotation.SuppressLint
|
||||
//import android.content.Context
|
||||
//import android.net.ConnectivityManager
|
||||
//import android.net.Network
|
||||
//import android.net.NetworkCapabilities
|
||||
//import android.net.NetworkRequest
|
||||
//import android.net.wifi.ScanResult
|
||||
//import android.net.wifi.WifiConfiguration
|
||||
//import android.net.wifi.WifiManager
|
||||
//import android.util.Log
|
||||
//import com.cloud.diplomaticquarterapp.utils.API
|
||||
//import com.cloud.diplomaticquarterapp.FlutterMainActivity
|
||||
//import com.github.kittinunf.fuel.core.extensions.jsonBody
|
||||
//import com.github.kittinunf.fuel.httpGet
|
||||
//import com.github.kittinunf.fuel.httpPost
|
||||
//import org.json.JSONObject
|
||||
//import java.util.*
|
||||
//
|
||||
//
|
||||
//@SuppressLint("MissingPermission")
|
||||
//class HMG_Wifi_(flutterMainActivity: FlutterMainActivity) {
|
||||
// val TAG = "WIFI"
|
||||
// val TEST = true
|
||||
//
|
||||
// var context = flutterMainActivity;
|
||||
// var completionListener: ((status: Boolean, message: String) -> Unit)? = null
|
||||
//
|
||||
//
|
||||
// private var SSID = "HMG-GUEST"
|
||||
// private var USER_NAME = ""
|
||||
// private var PASSWORD = ""
|
||||
// var NETWORK_ID = -1 // HMG-GUEST Assigned Network ID by Android
|
||||
// private lateinit var PATIENT_ID:String
|
||||
// /*
|
||||
// * Helpful:
|
||||
// * http://stackoverflow.com/questions/5452940/how-can-i-get-android-wifi-scan-results-into-a-list
|
||||
// */
|
||||
// fun triggerWifiScan(context: Context) {
|
||||
// val wifi = context.getSystemService(Context.WIFI_SERVICE) as WifiManager
|
||||
// wifi.startScan()
|
||||
// }
|
||||
//
|
||||
// /*
|
||||
// * Helpful:
|
||||
// * http://stackoverflow.com/questions/8818290/how-to-connect-to-a-specific-wifi-network-in-android-programmatically
|
||||
// */
|
||||
// fun connectToWifiNetworkWith(patientId: String): HMG_Wifi_ {
|
||||
//
|
||||
// val connectivityManager = context.applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
||||
//
|
||||
// PATIENT_ID = patientId
|
||||
//
|
||||
// val security = "OPEN"
|
||||
// val networkPass = ""
|
||||
// Log.d(TAG, "Connecting to SSID \"$SSID\" with password \"$networkPass\" and with security \"$security\" ...")
|
||||
//
|
||||
// // You need to create WifiConfiguration instance like this:
|
||||
// val conf = WifiConfiguration()
|
||||
// conf.SSID = "\"" + SSID + "\""
|
||||
//
|
||||
// if (security == "OPEN") {
|
||||
// conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE)
|
||||
// } else if (security == "WEP") {
|
||||
// conf.wepKeys[0] = "\"" + networkPass + "\""
|
||||
// conf.wepTxKeyIndex = 0
|
||||
// conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE)
|
||||
// conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40)
|
||||
// } else {
|
||||
// conf.preSharedKey = "\"" + networkPass + "\""
|
||||
// }
|
||||
//
|
||||
// // Then, you need to add it to Android wifi manager settings:
|
||||
// val wifiManager = context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
|
||||
//
|
||||
// NETWORK_ID = wifiManager.addNetwork(conf)
|
||||
// Log.d(TAG, "Network ID: $NETWORK_ID")
|
||||
//
|
||||
// //wifiManager.disconnect();
|
||||
// val result = wifiManager.enableNetwork(NETWORK_ID, true)
|
||||
// //wifiManager.reconnect();
|
||||
// wifiManager.saveConfiguration()
|
||||
//
|
||||
// if(result == true){
|
||||
// authNetworkConnection(NETWORK_ID);
|
||||
// }else{
|
||||
// completionListener?.let { it(false, "Error connecting to HMG network") }
|
||||
// }
|
||||
// return this
|
||||
// }
|
||||
//
|
||||
// private var authTimer:Timer? = null
|
||||
// fun authNetworkConnection(networkId: Int){
|
||||
// authTimer = Timer()
|
||||
// authTimer?.scheduleAtFixedRate(object : TimerTask() {
|
||||
// override fun run() {
|
||||
// if (connectedNetworkId() == networkId && connectedNetworkIPAddress() > 0) {
|
||||
// authServerCall()
|
||||
// authTimer?.cancel()
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// }, 2000, 1000)
|
||||
//
|
||||
// // If wifi not connected in 5 sec terminate with fail status
|
||||
// Timer().schedule(object : TimerTask() {
|
||||
// override fun run() {
|
||||
// if (null != authTimer) {
|
||||
// authTimer?.cancel()
|
||||
// completionListener?.let { it(false, "Error connecting to HMG network") }
|
||||
// }
|
||||
// }
|
||||
// }, 5000)
|
||||
//
|
||||
// }
|
||||
//
|
||||
// fun authServerCall(){
|
||||
//
|
||||
// fun call(){
|
||||
//
|
||||
// forceNetworkCallOverWifi()
|
||||
//
|
||||
// val params = listOf("cmd" to "authenticate", "password" to PASSWORD, "user" to USER_NAME)
|
||||
// val serverUrl = "https://captiveportal-login.hmg.com/cgi-bin/login"
|
||||
//// val serverUrl = "http://192.168.102.223/cgi-bin/login"
|
||||
// serverUrl
|
||||
// .httpPost(params)
|
||||
// .timeout(10000)
|
||||
// .response { request, response, result ->
|
||||
// Log.v(TAG, response.statusCode.toString())
|
||||
//
|
||||
// haveInternet { have ->
|
||||
// if(have){
|
||||
// Log.v(TAG, "Connected to internet via $SSID network at HMG")
|
||||
// completionListener?.let { it(true, "Successfully connected to the internet") }
|
||||
// }else{
|
||||
// Log.e(TAG, "failed to connect to internet via $SSID network at HMG")
|
||||
// completionListener?.let { it(false, "Authentication failed or you are already using your credentials on another device") }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// haveInternet { has ->
|
||||
// if (has){
|
||||
// getAuthCredentials {
|
||||
// call()
|
||||
// }
|
||||
// }else{
|
||||
// completionListener?.let { it(false, "You must have active internet connection to connect with HMG Network") }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// fun haveInternet(completion: ((status: Boolean) -> Unit)){
|
||||
// if (TEST)
|
||||
// completion(true)
|
||||
//
|
||||
// "https://captive.apple.com".httpGet().response { request, response, result ->
|
||||
// val have = response.statusCode == 200 && String(response.data).contains("<TITLE>Success</TITLE>", true)
|
||||
// completion(have)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// fun getAuthCredentials(completion: (() -> Unit)){
|
||||
// if (TEST){
|
||||
// USER_NAME = "2300"
|
||||
// PASSWORD = "1820"
|
||||
// completion()
|
||||
// return
|
||||
// }
|
||||
//
|
||||
// val jsonBody = """{"PatientID":$PATIENT_ID}"""
|
||||
// API.WIFI_CREDENTIALS
|
||||
// .httpPost()
|
||||
// .jsonBody(jsonBody, Charsets.UTF_8)
|
||||
// .response { request, response, result ->
|
||||
// val jsonString = String(response.data)
|
||||
// Log.d(TAG, "JSON $jsonString")
|
||||
//
|
||||
// if (response.statusCode == 200){
|
||||
//
|
||||
// val jsonObject = JSONObject(jsonString)
|
||||
// if(!jsonObject.getString("ErrorMessage").equals("null")){
|
||||
// val errorMsg = jsonObject.getString("ErrorMessage")
|
||||
// completionListener?.let { it(false, errorMsg) }
|
||||
//
|
||||
// }else{
|
||||
// jsonObject.getJSONArray("Hmg_SMS_Get_By_ProjectID_And_PatientIDList").let { array ->
|
||||
// array.getJSONObject(0).let { object_ ->
|
||||
// if (object_.has("UserName") && object_.has("UserName")){
|
||||
// USER_NAME = object_.getString("UserName")
|
||||
// PASSWORD = object_.getString("Password")
|
||||
// completion()
|
||||
// }else{
|
||||
// completionListener?.let { it(false, "Failed to get your internet credentials") }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// }else{
|
||||
// completionListener?.let { it(false, "Failed to get your internet credentials") }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// fun forceNetworkCallOverWifi(){
|
||||
// val connectivityManager = context.applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
||||
//// val network = Network
|
||||
//// connectivityManager.activeNetwork
|
||||
// // Exit app if Network disappears.
|
||||
// // Exit app if Network disappears.
|
||||
//// val networkCapabilities: NetworkCapabilities = ConnectivityManager.from(context).getNetworkCapabilities(network)
|
||||
//// val networkCapabilities: NetworkCapabilities = connectivityManager.getNetworkCapabilities(network)
|
||||
//
|
||||
//// if (networkCapabilities == null) {
|
||||
//// return
|
||||
//// }
|
||||
//
|
||||
// val mNetworkCallback = object : ConnectivityManager.NetworkCallback() {
|
||||
// override fun onLost(lostNetwork: Network?) {
|
||||
//// if (network.equals(lostNetwork)){
|
||||
//// //GlyphLayout.done(false)
|
||||
//// }
|
||||
// }
|
||||
// }
|
||||
// val builder: NetworkRequest.Builder = NetworkRequest.Builder()
|
||||
//// for (transportType in networkCapabilities.getTransportTypes()) {
|
||||
//// builder.addTransportType(transportType)
|
||||
//// }
|
||||
// connectivityManager.registerNetworkCallback(builder.build(), mNetworkCallback)
|
||||
// }
|
||||
//
|
||||
// /*
|
||||
// * Helpful:
|
||||
// * http://stackoverflow.com/questions/6517314/android-wifi-connection-programmatically
|
||||
// */
|
||||
// fun getScanResultSecurity(result: ScanResult): String? {
|
||||
// val capabilities: String = result.capabilities
|
||||
// val securityModes = arrayOf("WEP", "PSK", "EAP")
|
||||
// for (securityMode in securityModes) {
|
||||
// if (capabilities.contains(securityMode)) {
|
||||
// return securityMode
|
||||
// }
|
||||
// }
|
||||
// return "OPEN"
|
||||
// }
|
||||
//
|
||||
// //connects to the given ssid
|
||||
// fun connectToWPAWiFi(ssid: String, password: String){
|
||||
//
|
||||
// WifiUtils.withContext(context)
|
||||
// .connectWith(ssid, "")
|
||||
// .setTimeout(40000)
|
||||
// .onConnectionResult(object : ConnectionSuccessListener {
|
||||
// override fun success() {
|
||||
// Log.v(TAG,"Success")
|
||||
// }
|
||||
//
|
||||
// override fun failed(@NonNull errorCode: ConnectionErrorCode) {
|
||||
// Log.v(TAG,"Failed")
|
||||
// }
|
||||
// })
|
||||
// .start()
|
||||
// if(isConnectedTo(ssid)){ //see if we are already connected to the given ssid
|
||||
// return
|
||||
// }
|
||||
//
|
||||
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
// Log.e(TAG, "connection wifi Q")
|
||||
//
|
||||
// val wifiNetworkSpecifier: WifiNetworkSpecifier = WifiNetworkSpecifier.Builder()
|
||||
// .setSsid(ssid)
|
||||
// .setWpa2Passphrase(password)
|
||||
// .build()
|
||||
//
|
||||
// val networkRequest: NetworkRequest = NetworkRequest.Builder()
|
||||
// .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
|
||||
// .setNetworkSpecifier(wifiNetworkSpecifier)
|
||||
// .build()
|
||||
//
|
||||
// var connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
||||
// var networkCallback = object : ConnectivityManager.NetworkCallback() {
|
||||
// override fun onAvailable(network: Network) {
|
||||
// super.onAvailable(network)
|
||||
// connectivityManager.bindProcessToNetwork(network)
|
||||
// Log.e(TAG, "onAvailable")
|
||||
// }
|
||||
//
|
||||
// override fun onLosing(network: Network, maxMsToLive: Int) {
|
||||
// super.onLosing(network, maxMsToLive)
|
||||
// Log.e(TAG, "onLosing")
|
||||
// }
|
||||
//
|
||||
// override fun onLost(network: Network) {
|
||||
// super.onLost(network)
|
||||
// Log.e(TAG, "onLosing")
|
||||
// Log.e(TAG, "losing active connection")
|
||||
// }
|
||||
//
|
||||
// override fun onUnavailable() {
|
||||
// super.onUnavailable()
|
||||
// Log.e(TAG, "onUnavailable")
|
||||
// }
|
||||
// }
|
||||
// connectivityManager.requestNetwork(networkRequest, networkCallback)
|
||||
//
|
||||
// }else{
|
||||
//
|
||||
// try {
|
||||
// val wm:WifiManager= context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
|
||||
//
|
||||
// Log.e(TAG, "connection wifi pre Q")
|
||||
//
|
||||
// var netId: Int = wm.addNetwork(getWifiConfig(ssid))
|
||||
// if (netId == -1) netId = getExistingNetworkId(ssid);
|
||||
// wm.saveConfiguration()
|
||||
// if(wm.enableNetwork(netId, true)){
|
||||
// Log.v(TAG,"HMG-GUEST Connected")
|
||||
// }else{
|
||||
// Log.v(TAG,"HMG-GUEST failed to connect")
|
||||
// }
|
||||
// } catch (e: Exception) {
|
||||
// e.printStackTrace()
|
||||
// Log.v(TAG,"HMG-GUEST failed to connect")
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// fun connectedNetworkId():Int{
|
||||
// val wm:WifiManager= context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
|
||||
// return wm.connectionInfo.networkId
|
||||
// }
|
||||
//
|
||||
// fun connectedNetworkIPAddress():Int{
|
||||
// val wm:WifiManager= context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
|
||||
// return wm.connectionInfo.ipAddress
|
||||
// }
|
||||
//
|
||||
// fun isConnectedTo(bssid: String):Boolean{
|
||||
// val wm:WifiManager= context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
|
||||
// if(wm.connectionInfo.bssid == bssid){
|
||||
// return true
|
||||
// }
|
||||
// return false
|
||||
// }
|
||||
//
|
||||
//}
|
||||
@ -0,0 +1,145 @@
|
||||
package com.cloud.diplomaticquarterapp.utils
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.os.Build
|
||||
import com.cloud.diplomaticquarterapp.BuildConfig
|
||||
import com.google.gson.Gson
|
||||
|
||||
class Logs {
|
||||
|
||||
enum class STATUS{
|
||||
SUCCESS,
|
||||
ERROR;
|
||||
}
|
||||
class GeofenceEvent{
|
||||
companion object{
|
||||
fun save(context: Context, tag:String, message:String, status:Logs.STATUS = STATUS.SUCCESS){
|
||||
Logs.Common.save(context,"GeofenceEvent", tag, message, status)
|
||||
}
|
||||
|
||||
fun list(context: Context, tag:String? = null, status:Logs.STATUS? = null):List<LogModel>{
|
||||
return Logs.Common.list(context,"GeofenceEvent", tag, status)
|
||||
}
|
||||
|
||||
fun raw(context: Context):String{
|
||||
return Logs.Common.raw(context,"GeofenceEvent")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class RegisterGeofence{
|
||||
companion object{
|
||||
fun save(context: Context, tag:String, message:String, status:Logs.STATUS = STATUS.SUCCESS){
|
||||
Logs.Common.save(context,"RegisterGeofence", tag, message, status)
|
||||
}
|
||||
|
||||
fun list(context: Context, tag:String? = null, status:Logs.STATUS? = null):List<LogModel>{
|
||||
return Logs.Common.list(context,"RegisterGeofence", tag, status)
|
||||
}
|
||||
|
||||
fun raw(context: Context):String{
|
||||
return Logs.Common.raw(context,"RegisterGeofence");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
companion object{
|
||||
private var pref:SharedPreferences? = null
|
||||
fun save(context: Context, tag:String, message:String, status:Logs.STATUS = STATUS.SUCCESS){
|
||||
Logs.Common.save(context,"Logs", tag, message, status)
|
||||
}
|
||||
|
||||
fun list(context: Context, tag:String? = null, status:Logs.STATUS? = null):List<LogModel>{
|
||||
return Logs.Common.list(context,"Logs", tag, status)
|
||||
}
|
||||
|
||||
fun raw(context: Context):String{
|
||||
return Logs.Common.raw(context,"Logs");
|
||||
}
|
||||
|
||||
private fun storage(context: Context):SharedPreferences{
|
||||
if(pref == null) {
|
||||
pref = context.getSharedPreferences(PREFS_STORAGE, Context.MODE_PRIVATE)
|
||||
}
|
||||
return pref!!
|
||||
}
|
||||
}
|
||||
|
||||
private class Common{
|
||||
companion object{
|
||||
private val gson = Gson()
|
||||
|
||||
fun save(context: Context, key:String, tag:String, message:String, status:Logs.STATUS = STATUS.SUCCESS){
|
||||
if(!BuildConfig.DEBUG)
|
||||
return
|
||||
|
||||
val pref = Logs.storage(context)
|
||||
|
||||
val string = pref.getString(key,"{}")
|
||||
val json = gson.fromJson<LogsContainerModel>(string,LogsContainerModel::class.java)
|
||||
json.add(
|
||||
LogModel().apply {
|
||||
this.TAG = tag
|
||||
this.MESSAGE = message
|
||||
this.STATUS = status.name
|
||||
this.DATE = DateUtils.dateTimeNow()
|
||||
}
|
||||
)
|
||||
|
||||
pref.edit().putString(key,gson.toJson(json)).apply()
|
||||
}
|
||||
|
||||
fun list(context: Context, key:String, tag:String? = null, status:Logs.STATUS? = null):List<LogModel>{
|
||||
val pref = Logs.storage(context)
|
||||
val string = pref.getString(key,"{}")
|
||||
val json = gson.fromJson<LogsContainerModel>(string,LogsContainerModel::class.java)
|
||||
if(tag == null && status == null) {
|
||||
return json.LOGS
|
||||
}else if(tag != null && status != null){
|
||||
return json.LOGS.filter { (it.TAG == tag && it.STATUS == status.name) }
|
||||
}else if(tag != null){
|
||||
return json.LOGS.filter { (it.TAG == tag) }
|
||||
}else if(status != null){
|
||||
return json.LOGS.filter { (it.STATUS == status.name) }
|
||||
}
|
||||
return listOf()
|
||||
}
|
||||
|
||||
fun raw(context: Context, key:String):String{
|
||||
val pref = Logs.storage(context)
|
||||
val string = pref.getString(key,"{}")
|
||||
return string!!
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class LogModel{
|
||||
lateinit var TAG:String
|
||||
lateinit var MESSAGE:String
|
||||
lateinit var STATUS:String
|
||||
lateinit var DATE:String
|
||||
|
||||
companion object{
|
||||
fun with(tag:String, message:String, status:String):LogModel{
|
||||
return LogModel().apply {
|
||||
this.TAG = tag
|
||||
this.MESSAGE = message
|
||||
this.STATUS = status
|
||||
this.DATE = DateUtils.dateTimeNow()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class LogsContainerModel{
|
||||
var LOGS = mutableListOf<LogModel>()
|
||||
fun add(log:LogModel){
|
||||
LOGS.add(log)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,127 @@
|
||||
package com.cloud.diplomaticquarterapp.utils
|
||||
|
||||
import android.content.Context
|
||||
import android.net.wifi.WifiManager
|
||||
import android.util.Log
|
||||
import com.cloud.diplomaticquarterapp.MainActivity
|
||||
import com.cloud.diplomaticquarterapp.hmgwifi.HMG_Guest
|
||||
import com.cloud.diplomaticquarterapp.hmgwifi.HMG_Internet
|
||||
import com.cloud.diplomaticquarterapp.geofence.GeoZoneModel
|
||||
import com.cloud.diplomaticquarterapp.geofence.HMG_Geofence
|
||||
import io.flutter.plugin.common.BinaryMessenger
|
||||
import io.flutter.plugin.common.MethodCall
|
||||
import io.flutter.plugin.common.MethodChannel
|
||||
|
||||
class PlatformBridge(binaryMessenger: BinaryMessenger, flutterMainActivity: MainActivity) {
|
||||
private var binaryMessenger = binaryMessenger
|
||||
private var mainActivity = flutterMainActivity
|
||||
|
||||
private lateinit var channel: MethodChannel
|
||||
|
||||
companion object {
|
||||
private const val CHANNEL = "HMG-Platform-Bridge"
|
||||
private const val HMG_INTERNET_WIFI_CONNECT_METHOD = "connectHMGInternetWifi"
|
||||
private const val HMG_GUEST_WIFI_CONNECT_METHOD = "connectHMGGuestWifi"
|
||||
private const val ENABLE_WIFI_IF_NOT = "enableWifiIfNot"
|
||||
private const val REGISTER_HMG_GEOFENCES = "registerHmgGeofences"
|
||||
private const val UN_REGISTER_HMG_GEOFENCES = "unRegisterHmgGeofences"
|
||||
}
|
||||
|
||||
fun create(){
|
||||
channel = MethodChannel(binaryMessenger, CHANNEL)
|
||||
HMGUtils.setPlatformChannel(channel)
|
||||
channel.setMethodCallHandler { methodCall: MethodCall, result: MethodChannel.Result ->
|
||||
|
||||
if (methodCall.method == HMG_INTERNET_WIFI_CONNECT_METHOD) {
|
||||
connectHMGInternetWifi(methodCall,result)
|
||||
|
||||
}else if (methodCall.method == HMG_GUEST_WIFI_CONNECT_METHOD) {
|
||||
connectHMGGuestWifi(methodCall,result)
|
||||
|
||||
}else if (methodCall.method == ENABLE_WIFI_IF_NOT) {
|
||||
enableWifiIfNot(methodCall,result)
|
||||
}else if (methodCall.method == REGISTER_HMG_GEOFENCES) {
|
||||
registerHmgGeofences(methodCall,result)
|
||||
}else if (methodCall.method == UN_REGISTER_HMG_GEOFENCES) {
|
||||
unRegisterHmgGeofences(methodCall,result)
|
||||
}else{
|
||||
|
||||
result.notImplemented()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
val res = channel.invokeMethod("localizedValue","errorConnectingHmgNetwork")
|
||||
print(res)
|
||||
}
|
||||
|
||||
private fun connectHMGInternetWifi(methodCall: MethodCall, result: MethodChannel.Result){
|
||||
(methodCall.arguments as ArrayList<*>).let {
|
||||
require(it.size > 0 && (it[0] is String),lazyMessage = {
|
||||
"Missing or invalid arguments (Must have one argument 'String at 0'"
|
||||
})
|
||||
|
||||
val patientId = it[0].toString()
|
||||
HMG_Internet(mainActivity)
|
||||
.connectToHMGGuestNetwork(patientId){ status, message ->
|
||||
|
||||
mainActivity.runOnUiThread {
|
||||
result.success(if(status) 1 else 0)
|
||||
|
||||
HMGUtils.popFlutterText(mainActivity, message)
|
||||
Log.v(this.javaClass.simpleName, "$status | $message")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun connectHMGGuestWifi(methodCall: MethodCall, result: MethodChannel.Result){
|
||||
HMG_Guest(mainActivity).connectToHMGGuestNetwork { status, message ->
|
||||
mainActivity.runOnUiThread {
|
||||
result.success(if(status) 1 else 0)
|
||||
|
||||
HMGUtils.popFlutterText(mainActivity, message)
|
||||
Log.v(this.javaClass.simpleName, "$status | $message")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun enableWifiIfNot(methodCall: MethodCall, result: MethodChannel.Result) {
|
||||
val wm = mainActivity.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager?
|
||||
if (wm != null){
|
||||
if (!wm.isWifiEnabled)
|
||||
wm.isWifiEnabled = true
|
||||
result.success(true)
|
||||
}else
|
||||
result.error("101","Error while opening wifi, Please try to open wifi yourself and try again","'WifiManager' service failed");
|
||||
}
|
||||
|
||||
|
||||
private fun registerHmgGeofences(methodCall: MethodCall, result: MethodChannel.Result) {
|
||||
|
||||
channel.invokeMethod("getGeoZones",null, object : MethodChannel.Result{
|
||||
override fun success(result: Any?) {
|
||||
if(result is String) {
|
||||
val geoZones = GeoZoneModel().listFrom(result)
|
||||
HMG_Geofence.shared(mainActivity).register(){ s, e -> }
|
||||
}
|
||||
}
|
||||
|
||||
override fun error(errorCode: String?, errorMessage: String?, errorDetails: Any?) { print(result) }
|
||||
override fun notImplemented() { print(result) }
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
private fun unRegisterHmgGeofences(methodCall: MethodCall, result: MethodChannel.Result) {
|
||||
HMG_Geofence.shared(mainActivity).unRegisterAll { status, exception ->
|
||||
if(status)
|
||||
result.success(true)
|
||||
else
|
||||
result.error("101", exception?.localizedMessage, exception);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 544 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 442 B |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 721 B |
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 1.4 KiB |
@ -0,0 +1,22 @@
|
||||
<resources>
|
||||
<string name="app_name">HMG Patient App</string>
|
||||
|
||||
<string name="geofence_unknown_error">
|
||||
Unknown error: the Geofence service is not available now.
|
||||
</string>
|
||||
<string name="geofence_not_available">
|
||||
Geofence service is not available now. Go to Settings>Location>Mode and choose High accuracy.
|
||||
</string>
|
||||
<string name="geofence_too_many_geofences">
|
||||
Your app has registered too many geofences.
|
||||
</string>
|
||||
<string name="geofence_too_many_pending_intents">
|
||||
You have provided too many PendingIntents to the addGeofences() call.
|
||||
</string>
|
||||
<string name="GEOFENCE_INSUFFICIENT_LOCATION_PERMISSION">
|
||||
App do not have permission to access location service.
|
||||
</string>
|
||||
<string name="GEOFENCE_REQUEST_TOO_FREQUENT">
|
||||
Geofence requests happened too frequently.
|
||||
</string>
|
||||
</resources>
|
||||
@ -1,6 +1,6 @@
|
||||
#Wed Nov 25 14:25:50 AST 2020
|
||||
#Thu Sep 03 16:26:30 EEST 2020
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
|
||||
|
||||
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 2.0 KiB |
@ -0,0 +1,26 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="103.843" height="79.732" viewBox="0 0 103.843 79.732">
|
||||
<g id="Group_776" data-name="Group 776" transform="translate(-67.806 -333.834)">
|
||||
<g id="Group_772" data-name="Group 772" transform="translate(72.721 385.261)">
|
||||
<path id="Rectangle_494" data-name="Rectangle 494" d="M3.513,0h5.5a3.512,3.512,0,0,1,3.512,3.512V24.794a3.512,3.512,0,0,1-3.512,3.512h-5.5A3.512,3.512,0,0,1,0,24.793V3.513A3.513,3.513,0,0,1,3.513,0Z" transform="translate(81.49)" fill="#404040"/>
|
||||
<path id="Rectangle_495" data-name="Rectangle 495" d="M3.513,0h5.5a3.512,3.512,0,0,1,3.512,3.512V24.794a3.512,3.512,0,0,1-3.512,3.512h-5.5A3.512,3.512,0,0,1,0,24.793V3.513A3.513,3.513,0,0,1,3.513,0Z" transform="translate(0)" fill="#404040"/>
|
||||
</g>
|
||||
<g id="Group_774" data-name="Group 774" transform="translate(67.806 333.834)">
|
||||
<g id="Group_773" data-name="Group 773" transform="translate(0 20.106)">
|
||||
<path id="Path_964" data-name="Path 964" d="M202.791,368.713a2.117,2.117,0,0,1-1.4,1.881l.87,1.595a2.144,2.144,0,0,1,2.578-.721h.784v-2.755Z" transform="translate(-108.451 -364.552)" fill="#b2361d"/>
|
||||
<path id="Path_965" data-name="Path 965" d="M212.887,366.617c.07,1.4-1.91,2.76-3.882,3.26-2.9.735-5.653-.648-5.653-3.515,0-2.783,1.939-4.222,4.769-3.4C210.072,363.532,212.818,365.233,212.887,366.617Z" transform="translate(-109.046 -362.733)" fill="#d84c2f"/>
|
||||
<path id="Path_966" data-name="Path 966" d="M80.223,368.713a2.116,2.116,0,0,0,1.4,1.881l-.87,1.595a2.144,2.144,0,0,0-2.578-.721h-.785v-2.755Z" transform="translate(-70.722 -364.552)" fill="#b2361d"/>
|
||||
<path id="Path_967" data-name="Path 967" d="M67.808,366.617c-.07,1.4,1.909,2.76,3.882,3.26,2.9.735,5.654-.648,5.654-3.515,0-2.783-1.939-4.222-4.769-3.4C70.623,363.532,67.877,365.233,67.808,366.617Z" transform="translate(-67.806 -362.733)" fill="#d84c2f"/>
|
||||
</g>
|
||||
<path id="Path_968" data-name="Path 968" d="M168.258,369.52c-.522-3.479-3.218-7.392-4.7-10.349s-6.929-16.872-8.262-19.307a10.983,10.983,0,0,0-7.653-5.435c-3.479-.522-18.843-.594-25.511-.594s-22.032.072-25.51.594a10.981,10.981,0,0,0-7.653,5.435c-1.334,2.435-6.784,16.35-8.262,19.307s-4.174,6.871-4.7,10.349-.348,24.09.522,27.482a7.356,7.356,0,0,0,6.61,5.479h77.982a7.356,7.356,0,0,0,6.61-5.479C168.606,393.61,168.78,373,168.258,369.52Z" transform="translate(-70.214 -333.834)" fill="#d84c2f"/>
|
||||
<path id="Path_969" data-name="Path 969" d="M75.773,405.294c.09,5.924.349,11.778.779,13.45a7.356,7.356,0,0,0,6.61,5.479h77.982a7.356,7.356,0,0,0,6.61-5.479c.429-1.671.687-7.525.779-13.45Z" transform="translate(-70.23 -355.576)" fill="#d63828"/>
|
||||
<path id="Path_970" data-name="Path 970" d="M160.494,364.834s4.871,7.37,5.508,9.221.725,3.533-1.1,4.374-15.567,4.261-18.7,4.261H101.385c-3.131,0-16.872-3.42-18.7-4.261s-1.739-2.522-1.1-4.374,5.508-9.221,5.508-9.221" transform="translate(-71.873 -343.266)" fill="none" stroke="#b2361d" stroke-miterlimit="10" stroke-width="0.5"/>
|
||||
</g>
|
||||
<path id="Path_971" data-name="Path 971" d="M165.792,420.908a1.465,1.465,0,0,1-1.364,2.224H83.859a1.465,1.465,0,0,1-1.364-2.224l1.75-4.285a3.366,3.366,0,0,1,2.887-1.956h74.025a3.364,3.364,0,0,1,2.887,1.956Z" transform="translate(-4.416 -24.593)" fill="#404040"/>
|
||||
<path id="Path_972" data-name="Path 972" d="M152.824,394.283c-.522-1.565-2.783-2.783-5.044-2.783h-26.96c-2.261,0-4.522,1.218-5.044,2.783s1.826,8.009,2.7,9.179,1.826,1.46,4.609,1.46h22.438c2.783,0,3.74-.29,4.609-1.46S153.346,395.848,152.824,394.283Z" transform="translate(-14.572 -17.545)" fill="#404040"/>
|
||||
<path id="Path_973" data-name="Path 973" d="M163.631,358.436c-.435-1.508-4.609-12.147-5.827-14.669s-2.87-3.392-4.088-3.392H98c-1.218,0-2.87.87-4.088,3.392s-5.392,13.161-5.827,14.669.261,2.2,1.391,2.2h72.764C163.37,360.639,164.066,359.943,163.631,358.436Z" transform="translate(-6.13 -1.99)" fill="#404040"/>
|
||||
<g id="Group_775" data-name="Group 775" transform="translate(76.803 368.998)">
|
||||
<path id="Path_974" data-name="Path 974" d="M175.9,389.332s3.827,4.783,5.74,4.783h11.045a2.421,2.421,0,0,0,2.522-2,23,23,0,0,0,0-7.74A90.156,90.156,0,0,1,175.9,389.332Z" transform="translate(-109.692 -384.375)" fill="#fff"/>
|
||||
<path id="Path_975" data-name="Path 975" d="M100.374,389.332s-3.827,4.783-5.74,4.783H83.589a2.421,2.421,0,0,1-2.522-2,23,23,0,0,1,0-7.74A90.156,90.156,0,0,0,100.374,389.332Z" transform="translate(-80.738 -384.375)" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 44 KiB |
@ -0,0 +1,17 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="95.266" height="25.878" viewBox="0 0 95.266 25.878">
|
||||
<g id="Group_1207" data-name="Group 1207" transform="translate(-114.266 -194)">
|
||||
<g id="Path_1368" data-name="Path 1368" transform="translate(114.266 194)" fill="#fff">
|
||||
<path d="M 92.51264953613281 25.37797546386719 L 2.752974987030029 25.37797546386719 C 1.510674953460693 25.37797546386719 0.5 24.36730003356934 0.5 23.125 L 0.5 2.752975225448608 C 0.5 1.510675191879272 1.510674953460693 0.5000002384185791 2.752974987030029 0.5000002384185791 L 92.51264953613281 0.5000002384185791 C 93.75495147705078 0.5000002384185791 94.765625 1.510675191879272 94.765625 2.752975225448608 L 94.765625 23.125 C 94.765625 24.36730003356934 93.75495147705078 25.37797546386719 92.51264953613281 25.37797546386719 Z" stroke="none"/>
|
||||
<path d="M 2.752975463867188 1 C 1.786384582519531 1 1 1.786388397216797 1 2.752975463867188 L 1 23.125 C 1 24.09158706665039 1.786384582519531 24.87797546386719 2.752975463867188 24.87797546386719 L 92.51264953613281 24.87797546386719 C 93.47924041748047 24.87797546386719 94.265625 24.09158706665039 94.265625 23.125 L 94.265625 2.752975463867188 C 94.265625 1.786388397216797 93.47924041748047 1 92.51264953613281 1 L 2.752975463867188 1 M 2.752975463867188 0 L 92.51264953613281 0 C 94.03307342529297 0 95.265625 1.232549667358398 95.265625 2.752975463867188 L 95.265625 23.125 C 95.265625 24.64542579650879 94.03307342529297 25.87797546386719 92.51264953613281 25.87797546386719 L 2.752975463867188 25.87797546386719 C 1.232551574707031 25.87797546386719 0 24.64542579650879 0 23.125 L 0 2.752975463867188 C 0 1.232549667358398 1.232551574707031 0 2.752975463867188 0 Z" stroke="none" fill="#ccc"/>
|
||||
</g>
|
||||
<g id="Group_417" data-name="Group 417" transform="translate(-1932.136 317)">
|
||||
<g id="Group_22" data-name="Group 22" transform="translate(2052 -119)">
|
||||
<path id="Path_19" data-name="Path 19" d="M497.257,14.133s.591,0,1.007,0l3.154.015c.376,0,.69-.4.708-.978l0-2.636c0-.562.252-1,.641-1.027l.967-.008c.39.024.658.468.658,1.027l0,2.651c.018.578.28.955.659.955l4.246.011.008-3.258c0-.56-.269-1-.66-1.02l-1.706-.008c-.378,0-.674-.4-.691-.977l-.007-.881c.019-.578.317-.976.7-.976l1.716.005c.39-.026.644-.486.644-1.045l0-4.066a1.73,1.73,0,0,1-1.314.821H505.1c-.376,0-.69.41-.708.988V6.333c-.018.578-.313.985-.69.985l-.873-.007c-.379,0-.681-.4-.7-.97l0-2.64c-.018-.578-.317-.967-.694-.967h-4.188V5.982c0,.562.263,1.009.654,1.036l1.716-.007c.388.026.663.488.663,1.046l-.005.752c0,.56-.265,1.009-.655,1.035l-1.718,0c-.391.027-.654.471-.654,1.03ZM511.678,1.685V15.267a1.727,1.727,0,0,1-1.745,1.643h-13.4a1.719,1.719,0,0,1-1.737-1.644V1.659A1.728,1.728,0,0,1,496.53.01l13.393.005A1.757,1.757,0,0,1,511.678,1.685Z" transform="translate(-427.842 -0.01)" fill="#ed1c2b"/>
|
||||
<path id="Path_20" data-name="Path 20" d="M80.948,99.367h-.175v-.325a.784.784,0,0,1-.713.382c-.789,0-.79-.534-.79-.752V97.555h.176v1.11c0,.357.124.6.62.6a.64.64,0,0,0,.708-.649V97.556h.175ZM77.986,97.5a.963.963,0,1,1-.97.963A.932.932,0,0,1,77.986,97.5Zm0,1.76a.8.8,0,1,0-.8-.8A.762.762,0,0,0,77.986,99.26Zm-2.1-1.7h.176v.379a.723.723,0,0,1,.7-.434.37.37,0,0,1,.129.023l.008.188a.437.437,0,0,0-.187-.026.648.648,0,0,0-.648.7v.98h-.176Zm-.58.357c-.009-.05-.009-.356-.009-.356h.176v1.713c0,.414-.142.867-.942.867-.528,0-.832-.166-.889-.612l.175-.014c.038.287.223.463.716.463.652,0,.766-.371.766-.7v-.327a.938.938,0,1,1-.786-1.449A.825.825,0,0,1,75.3,97.912Zm-1.559.494a.7.7,0,0,0,.778.778.713.713,0,0,0,.77-.782.775.775,0,0,0-1.548,0Zm-1.48-1.556h.173v2.518h-.173Zm-2.069,1.281c.058-.472.285-.632.8-.632.5,0,.789.123.789.536v1c0,.137,0,.2.1.2a.435.435,0,0,0,.146-.027l.014.16a.531.531,0,0,1-.2.031.177.177,0,0,1-.192-.114.461.461,0,0,1-.024-.127c0-.037,0-.076,0-.12a.9.9,0,0,1-.8.383,1.254,1.254,0,0,1-.17-.009.748.748,0,0,1-.235-.061.487.487,0,0,1-.3-.487c0-.378.306-.5.651-.526l.593-.042c.173-.014.249-.032.249-.242,0-.231-.12-.394-.62-.394-.442,0-.576.143-.621.459Zm1.417.25a.512.512,0,0,1-.267.08l-.575.042c-.284.022-.476.1-.476.363,0,.35.334.392.541.392.34,0,.775-.161.775-.575v-.3Zm-1.905-.241a.666.666,0,0,0-.71-.478.8.8,0,0,0,0,1.6.694.694,0,0,0,.732-.532l.177-.009a.852.852,0,0,1-.909.7A.962.962,0,1,1,69,97.5a.805.805,0,0,1,.884.631Zm-2.182-.586H67.7v1.812h-.175Zm-.583.924a.736.736,0,0,0-.763-.816.8.8,0,1,0,.763.816Zm-.022.539a.787.787,0,0,1-.747.407.963.963,0,0,1,0-1.924.834.834,0,0,1,.743.4l.005-1.053H67.1v2.518H66.92v-.353Zm-2.046-.672a.726.726,0,0,0-.767-.682.741.741,0,0,0-.764.682Zm-1.533.162a.738.738,0,0,0,.8.752.682.682,0,0,0,.712-.5l.177-.008a.863.863,0,0,1-.907.674.9.9,0,0,1-.957-.976.953.953,0,1,1,1.905.049ZM60,97.555h.175v.277a.775.775,0,0,1,.649-.333.6.6,0,0,1,.652.4.68.68,0,0,1,.654-.4c.491,0,.717.235.717.644v1.225h-.175V98.2a.489.489,0,0,0-.539-.533.55.55,0,0,0-.622.593v1.112h-.175v-1.2c0-.307-.154-.5-.54-.5a.58.58,0,0,0-.622.626v1.077H60Zm21.364,0h.176v.352a.785.785,0,0,1,.747-.407.964.964,0,0,1,0,1.925.828.828,0,0,1-.741-.4l-.007,1.054h-.176V97.555Zm.156.889a.735.735,0,0,0,.763.816.8.8,0,1,0-.763-.816ZM67.485,97.02a.126.126,0,1,1,.126.133A.13.13,0,0,1,67.485,97.02Z" transform="translate(-51.882 -83.747)" fill="#5f6765"/>
|
||||
<path id="Path_21" data-name="Path 21" d="M244.039,99.841a.127.127,0,1,1,.126.133A.13.13,0,0,1,244.039,99.841Zm-.345,0a.131.131,0,0,1,.127-.133.133.133,0,0,1,0,.265A.131.131,0,0,1,243.694,99.841Zm18.835,0a.129.129,0,0,1,.124-.133.133.133,0,0,1,0,.265A.126.126,0,0,1,262.528,99.837Zm-9.99-2.874a.125.125,0,1,1,.126.133A.127.127,0,0,1,252.539,96.963Zm-.345,0a.126.126,0,1,1,.127.133A.128.128,0,0,1,252.194,96.963Zm-10.439.005a.126.126,0,1,1,.126.133A.13.13,0,0,1,241.755,96.969Zm-.344,0a.127.127,0,1,1,.126.133A.13.13,0,0,1,241.411,96.969Zm27.141-.157h.176v2.517h-.176Zm-18.306.023h.175v2.518h-.175Zm-.708,1.759V96.831h.176V98.6c0,.218-.007.752-.8.752h-2.831a.738.738,0,0,1-.7-.3c-.092.181-.294.337-.72.337s-.625-.154-.717-.337a.735.735,0,0,1-.7.3h-.525c-.2,0-.229-.153-.226-.364a.942.942,0,0,1-.816.4.962.962,0,1,1,.974-.944l0,.537c0,.137,0,.211.1.211h.492c.5,0,.617-.239.617-.6V97.518h.175v1.11c0,.357.134.6.628.6s.617-.238.617-.6v-1.11h.175v1.1c.005.342.131.57.618.57h.555v-2.36h.175v1.036a.784.784,0,0,1,.713-.382c.789,0,.789.534.789.754v.953h.6C249.42,99.19,249.539,98.951,249.539,98.594Zm-8.622-.152a.785.785,0,1,0,.766-.816A.77.77,0,0,0,240.917,98.442Zm7.225-.2c0-.359-.125-.6-.617-.6a.64.64,0,0,0-.71.649v.893h1.327Zm5.311.181v.552c0,.138,0,.211.1.211h1.007v-1c0-.219.007-.752.8-.752a1.473,1.473,0,0,1,.29.027l-.091.15a1.256,1.256,0,0,0-.192-.015c-.494,0-.628.239-.628.6v1h1.315v.162H253.52a.179.179,0,0,1-.189-.108A.74.74,0,0,1,253.3,99a.982.982,0,0,1-.815.384.961.961,0,1,1,.973-.959Zm-1.744.015a.786.786,0,1,0,.767-.816A.775.775,0,0,0,251.709,98.441Zm14.964.222c.019.319.154.528.614.528.483,0,.613-.242.613-.6v-1.8h.175V98.6c0,.216-.007.748-.789.752a.759.759,0,0,1-.679-.273.983.983,0,0,1-1.81,0,.764.764,0,0,1-.683.275h-2.089a.758.758,0,0,1-.682-.276.985.985,0,0,1-1.812,0,.758.758,0,0,1-.681.272h-.6c-.03.378-.217.747-.936.747-.529,0-.831-.165-.889-.61l.173-.015c.038.284.222.461.716.461.572,0,.721-.294.759-.583h-.721a.909.909,0,0,1-.981-.955.942.942,0,0,1,1.883.014v.778h.6c.437,0,.58-.18.609-.463.005-.054.008-.1.012-.139a.918.918,0,0,1,.962-.833.929.929,0,0,1,.967.932c.018.3.161.5.616.5h1.341V98.181c0-.357-.116-.6-.616-.6a.574.574,0,0,0-.516.195l-.153-.108a.791.791,0,0,1,.662-.249c.789,0,.8.534.8.752v1.012h.582c.461,0,.59-.2.614-.516a.971.971,0,0,1,1.936-.038Zm-8.592-.276a.7.7,0,0,0-.773-.75.712.712,0,0,0-.762.752.748.748,0,0,0,.828.8h.706Zm1.563.363a.795.795,0,0,0,1.588-.034c0-.024,0-.046,0-.066a.795.795,0,0,0-1.58-.042A.691.691,0,0,0,259.644,98.749Zm6.855-.024c0-.026,0-.043,0-.061a.794.794,0,0,0-1.586.031.794.794,0,1,0,1.589.03ZM245.28,99.841a.126.126,0,1,1,.126.133A.13.13,0,0,1,245.28,99.841Z" transform="translate(-208.166 -83.695)" fill="#5f6765"/>
|
||||
<path id="Path_22" data-name="Path 22" d="M11.934,8.762a.289.289,0,0,1-.291.285.294.294,0,0,1-.3-.285.285.285,0,0,1,.3-.273A.28.28,0,0,1,11.934,8.762ZM28.821,7.124V5.365a.236.236,0,0,1,.262-.216.233.233,0,0,1,.262.225V7.045c0,.7.024,1.184-.357,1.542a1.527,1.527,0,0,1-1.088.371,1.607,1.607,0,0,1-1.1-.382,1.389,1.389,0,0,1-.346-1.131V5.376a.237.237,0,0,1,.268-.229.239.239,0,0,1,.271.241V7.5a.962.962,0,0,0,.226.79,1.018,1.018,0,0,0,.7.235.951.951,0,0,0,.658-.229C28.844,8.043,28.821,7.757,28.821,7.124ZM2.416,8.762a.291.291,0,0,1-.292.285.3.3,0,0,1-.3-.285.286.286,0,0,1,.3-.273A.281.281,0,0,1,2.416,8.762Zm5.213,0a.291.291,0,0,1-.292.285.3.3,0,0,1-.3-.285.286.286,0,0,1,.3-.273A.281.281,0,0,1,7.63,8.762Zm.8,0a.29.29,0,0,1-.291.285.293.293,0,0,1-.3-.285.285.285,0,0,1,.3-.273A.281.281,0,0,1,8.431,8.762ZM14.682,5.35l.11-.054a1.876,1.876,0,0,1,.49-.137,2.478,2.478,0,0,1,.334-.023,1.814,1.814,0,0,1,1.831,1.975,2.5,2.5,0,0,1-.047.494h3.146a1.02,1.02,0,0,0,.7-.235.963.963,0,0,0,.227-.79V4.008A.271.271,0,0,1,22.014,4V6.523a1.388,1.388,0,0,1-.348,1.134,1.593,1.593,0,0,1-1.1.38H17.6l-4.858,0a1.482,1.482,0,0,1-.984-.367,1.263,1.263,0,0,1-.093-.1,1.3,1.3,0,0,1-.095.1,1.527,1.527,0,0,1-1.087.369h-1.6a1.6,1.6,0,0,1-1.066-.38c-.111-.053-.141-.02-.176.011a1.52,1.52,0,0,1-1.084.371H4.993a1.577,1.577,0,0,1-1.05-.382c-.11-.053-.141-.02-.175.011a1.47,1.47,0,0,1-.984.368l-1.335,0a1.6,1.6,0,0,1-1.1-.382A1.394,1.394,0,0,1,0,6.524V5.372a.24.24,0,0,1,.269-.23.237.237,0,0,1,.268.241v1.2a.96.96,0,0,0,.227.79,1.02,1.02,0,0,0,.7.235l1.317,0a.9.9,0,0,0,.572-.227A.843.843,0,0,0,3.6,6.721V5.369a.239.239,0,0,1,.268-.23.237.237,0,0,1,.268.241v1.2a.964.964,0,0,0,.226.79.973.973,0,0,0,.635.233l1.576,0a.93.93,0,0,0,.656-.23.861.861,0,0,0,.244-.686V5.37a.27.27,0,0,1,.536.011v1.2a.96.96,0,0,0,.227.79,1,1,0,0,0,.66.234H10.5a.936.936,0,0,0,.656-.229A.924.924,0,0,0,11.4,6.61c0-.149,0-.31,0-.484V5.368a.266.266,0,0,1,.524-.009v.847c0,.633-.024.919.246,1.172a.912.912,0,0,0,.571.227h4.132a2.086,2.086,0,0,0,.066-.537A1.359,1.359,0,0,0,15.586,5.58H15.5a2.189,2.189,0,0,0-.334.035c-.195.035-.165.03-.349.074C14.626,5.752,14.553,5.464,14.682,5.35ZM28.194,3.935a.288.288,0,0,1-.292.283.3.3,0,0,1-.3-.283.286.286,0,0,1,.3-.275A.282.282,0,0,1,28.194,3.935ZM41.723,8.762a.288.288,0,0,1-.29.285.3.3,0,0,1-.3-.285.287.287,0,0,1,.3-.273A.28.28,0,0,1,41.723,8.762Zm.8,0a.29.29,0,0,1-.291.285.294.294,0,0,1-.3-.285.285.285,0,0,1,.3-.273A.281.281,0,0,1,42.523,8.762Zm14.539-.728.009-.438h2.136c.832-.024,1.051-.368,1.066-.967-.031-.6-.234-1-1.066-1.03a2.436,2.436,0,0,0-.359.042,3.143,3.143,0,0,0-.348.074c-.192.06-.267-.227-.138-.341l.108-.053a1.877,1.877,0,0,1,.491-.138,2.527,2.527,0,0,1,.336-.022,1.333,1.333,0,0,1,1.473,1.449A1.314,1.314,0,0,1,59.3,8.034Zm-.373-.246a.29.29,0,0,1-.292.284.294.294,0,0,1-.3-.284.285.285,0,0,1,.3-.275A.281.281,0,0,1,56.688,7.788ZM54.841,6.125c0,.7.023,1.184-.36,1.544a1.522,1.522,0,0,1-1.084.369,1.6,1.6,0,0,1-1.1-.38l-.165.011a1.528,1.528,0,0,1-1.085.369,1.734,1.734,0,0,1-.909-.234v.231l-2.923,0a1.6,1.6,0,0,1-1.1-.38c-.11-.053-.139-.02-.172.011a1.531,1.531,0,0,1-1.087.369l-1.9,0a1.559,1.559,0,0,1-1.009-.379h-.157a1.6,1.6,0,0,1-1.1.38l-2.584,0a1.509,1.509,0,0,1-.348.551,1.52,1.52,0,0,1-1.084.371,1.6,1.6,0,0,1-1.1-.382,1.017,1.017,0,0,1-.3-.545l-3.153.008a1.6,1.6,0,0,1-1.1-.38,1.392,1.392,0,0,1-.346-1.134V4a.271.271,0,0,1,.537.011V6.58a.964.964,0,0,0,.226.79,1.023,1.023,0,0,0,.7.235l3.067,0,.027-.16V6.7a1.441,1.441,0,0,1,.345-1.174,1.6,1.6,0,0,1,1.1-.382,1.522,1.522,0,0,1,1.084.371,1.621,1.621,0,0,1,.359,1.308v.41c0,.129,0,.252-.005.367h2.561a1.019,1.019,0,0,0,.7-.235.827.827,0,0,0,.226-.658V5.377a.239.239,0,0,1,.268-.242.242.242,0,0,1,.271.23l0,.373,0,.783c0,.349-.008.626.227.847a.962.962,0,0,0,.593.231l1.915,0a.942.942,0,0,0,.655-.229c.268-.253.245-.539.245-1.172l-.011-.885V4a.271.271,0,0,1,.537.011V6.124c0,.173,0,.333,0,.482a.937.937,0,0,0,.234.764,1.018,1.018,0,0,0,.7.235H49.6V5.365a.23.23,0,0,1,.234-.214c.208.011.291.095.3.215V6.786a.775.775,0,0,0,.225.585,1.023,1.023,0,0,0,.7.235.944.944,0,0,0,.656-.229c.268-.253.244-.539.244-1.172v-.84a.266.266,0,0,1,.524.009V6.581a.96.96,0,0,0,.226.789,1.019,1.019,0,0,0,.7.235.941.941,0,0,0,.656-.229c.268-.253.244-.539.244-1.172v-.84a.238.238,0,0,1,.264-.216.235.235,0,0,1,.262.226v.751ZM37.342,8.3c.245-.231.245-.488.244-1.015V6.859c0-.576-.007-.828-.244-1.051a.941.941,0,0,0-.658-.23,1.013,1.013,0,0,0-.7.235.957.957,0,0,0-.226.79V7.5a.958.958,0,0,0,.226.79,1.013,1.013,0,0,0,.7.235A.934.934,0,0,0,37.342,8.3ZM23.324,8.034V4.006A.271.271,0,0,1,23.861,4V8.034Z" transform="translate(0 -3.166)" fill="#3d4543"/>
|
||||
<path id="Path_23" data-name="Path 23" d="M14.322,55.834V54.075a.266.266,0,0,1,.525.009v1.672c0,.7.022,1.183-.357,1.541a1.529,1.529,0,0,1-1.088.371,1.608,1.608,0,0,1-1.1-.383,1.391,1.391,0,0,1-.345-1.133V54.087a.271.271,0,0,1,.537.014V56.21a.961.961,0,0,0,.226.79,1.022,1.022,0,0,0,.7.235.941.941,0,0,0,.656-.23C14.346,56.753,14.322,56.467,14.322,55.834Zm1.437,1.76V54.087a.238.238,0,0,1,.268-.229.235.235,0,0,1,.267.215v3.094h1.652V57.6H15.759Zm6.514,0V54.07a.235.235,0,0,1,.235-.215c.208.011.291.095.3.215v.319l0,3.207h-.539Zm1.437,0,.394-3.469a.333.333,0,0,1,.368-.265.37.37,0,0,1,.344.235L25.9,56.91l1.05-2.82a.363.363,0,0,1,.319-.23.341.341,0,0,1,.388.264l.411,3.471h-.525l-.329-3.023-1.126,3.023h-.442l-1.151-3.023-.3,3.023Zm11.285-.751-.009-2.6v-.157a.244.244,0,0,1,.486-.012v3.523h-.533l-1.875-2.978.011,2.978h-.488V54.12c0-.225.2-.26.331-.26.172.007.229.08.352.257Zm6.478.751V54.075a.276.276,0,0,1,.537-.011v3.1h1.652v.428Zm4.314,0V54.06a.276.276,0,0,1,.537.011v1.353h1.824V54.071a.276.276,0,0,1,.537-.007v3.53h-.537V55.85H46.323v1.744Zm10.885,0V54.068a.24.24,0,0,1,.268-.214.238.238,0,0,1,.268.211v3.529ZM.264,53.868H.879a2.434,2.434,0,0,1,1.829.475,1.948,1.948,0,0,1,0,2.748,2.432,2.432,0,0,1-1.835.5H0V54.141A.242.242,0,0,1,.264,53.868Zm2.468,1.827a1.386,1.386,0,0,0-.424-1.073c-.346-.325-.741-.352-1.429-.352H.533v2.917h.5a1.752,1.752,0,0,0,1.3-.38A1.512,1.512,0,0,0,2.731,55.695ZM4.07,54.13c-.007-.183.107-.263.272-.263h.613a1.7,1.7,0,0,1,1.266.3.972.972,0,0,1,.31.743.876.876,0,0,1-.245.643,1.07,1.07,0,0,1-.639.295.576.576,0,0,1,.34.152,1.671,1.671,0,0,1,.31.52L6.811,57.6H6.248l-.459-.971C5.513,56.048,5.382,56,4.844,56h-.25v1.6H4.067V54.13ZM6,54.907a.618.618,0,0,0-.175-.447,1.1,1.1,0,0,0-.819-.2H4.595V55.6H4.78A1.462,1.462,0,0,0,5.8,55.377.651.651,0,0,0,6,54.907ZM18.25,57.594l1.229-3.184.126-.3a.357.357,0,0,1,.359-.252.367.367,0,0,1,.384.252l.149.356,1.219,3.127h-.563l-.361-.976H19.15l-.363.976Zm2.391-1.386-.674-1.821L19.3,56.209Zm7.9,1.386,1.229-3.184.124-.3a.36.36,0,0,1,.36-.252.367.367,0,0,1,.384.252l.15.356L32,57.594h-.559l-.365-.976H29.44l-.363.976Zm2.39-1.386-.671-1.821-.67,1.821Zm6.546,1.386L38.7,54.411l.124-.3a.358.358,0,0,1,.359-.252.365.365,0,0,1,.383.252l.15.356,1.216,3.127h-.56l-.361-.976h-1.64l-.365.976Zm2.391-1.386-.674-1.821-.667,1.821Zm9.348,1.386,1.227-3.184.126-.3a.357.357,0,0,1,.359-.252.37.37,0,0,1,.386.252l.147.356,1.218,3.127h-.559l-.365-.976H50.115l-.364.976Zm2.392-1.386-.677-1.821-.666,1.821Zm1.663,1.386V54.225c0-.267.068-.371.264-.371h.833a1.447,1.447,0,0,1,1.066.287.93.93,0,0,1,.311.718.8.8,0,0,1-.637.819.81.81,0,0,1,.763.835.986.986,0,0,1-.3.735c-.383.359-.884.348-1.6.348h-.7Zm1.938-2.725a.562.562,0,0,0-.154-.414,1.282,1.282,0,0,0-.919-.2h-.346v1.256h.306a1.443,1.443,0,0,0,.928-.208A.532.532,0,0,0,55.207,54.869Zm.119,1.653a.559.559,0,0,0-.18-.419,1.493,1.493,0,0,0-1.031-.208h-.329v1.289h.442a1.211,1.211,0,0,0,.925-.235A.616.616,0,0,0,55.327,56.523Zm2.845-2.668h1.1a1.448,1.448,0,0,1,1.066.287.936.936,0,0,1,.313.718.8.8,0,0,1-.639.819.809.809,0,0,1,.762.835.99.99,0,0,1-.3.735c-.384.359-.882.348-1.6.348h-.7V53.854Zm1.938,1.015a.572.572,0,0,0-.153-.414,1.275,1.275,0,0,0-.917-.2h-.348v1.256H59a1.455,1.455,0,0,0,.932-.208A.534.534,0,0,0,60.11,54.869Zm.122,1.653a.554.554,0,0,0-.18-.419,1.493,1.493,0,0,0-1.031-.208h-.329v1.289h.442c.467,0,.71-.034.924-.235A.611.611,0,0,0,60.231,56.523ZM8.772,54.791c0-.589.5-1,1.223-1.011a2.309,2.309,0,0,1,.855.181c.193.074.114.429-.1.36-.183-.043-.164-.043-.36-.083a1.294,1.294,0,0,0-.287-.032c-.484,0-.8.2-.8.537,0,.354.352.467.746.656.352.169,1.133.442,1.133,1.179,0,.617-.482,1.093-1.306,1.093a2.019,2.019,0,0,1-1.223-.4l.258-.346a1.8,1.8,0,0,0,.942.319c.49,0,.775-.275.775-.617,0-.41-.506-.61-.936-.808C9.19,55.588,8.772,55.34,8.772,54.791Z" transform="translate(0 -46.505)" fill="#3d4543"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="8.134" height="14.535" viewBox="0 0 8.134 14.535">
|
||||
<g id="arrow_right" transform="translate(0.5 0.707)">
|
||||
<path id="Path_1250" data-name="Path 1250" d="M7.5,18" transform="translate(-0.573 -11.44)" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
|
||||
<path id="Path_1251" data-name="Path 1251" d="M14.427,20.621,7.5,14.061,14.427,7.5" transform="translate(-7.5 -7.5)" fill="none" stroke="#999" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 569 B |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="8.134" height="14.534" viewBox="0 0 8.134 14.534">
|
||||
<g id="arrow_right" transform="translate(-6.793 -6.793)">
|
||||
<path id="Path_1250" data-name="Path 1250" d="M7.5,18" transform="translate(0 -3.94)" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
|
||||
<path id="Path_1251" data-name="Path 1251" d="M7.5,20.621l6.927-6.56L7.5,7.5" transform="translate(0)" fill="none" stroke="#999" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 553 B |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 13 13">
|
||||
<g id="Group_1214" data-name="Group 1214" transform="translate(-239 -260)">
|
||||
<circle id="Ellipse_49" data-name="Ellipse 49" cx="6.5" cy="6.5" r="6.5" transform="translate(239 260)" fill="#5ab145"/>
|
||||
<path id="check_1_" data-name="check (1)" d="M2.97,6.314a.4.4,0,0,1-.56,0L.174,4.077a.594.594,0,0,1,0-.84l.28-.28a.594.594,0,0,1,.84,0l1.4,1.4L6.463.58a.594.594,0,0,1,.84,0l.28.28a.594.594,0,0,1,0,.84Zm0,0" transform="translate(241.663 263.071)" fill="#fff"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 565 B |
|
After Width: | Height: | Size: 704 B |
@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18.666" height="18.665" viewBox="0 0 18.666 18.665">
|
||||
<g id="contact_us_icon" transform="translate(-8.8 -8.802)">
|
||||
<g id="Group_1035" data-name="Group 1035" transform="translate(8.8 8.802)">
|
||||
<path id="Path_1306" data-name="Path 1306" d="M25.88,23.851,23.274,22.03a2.01,2.01,0,0,0-2.8.5l-.605.867a22.4,22.4,0,0,1-3.224-2.708,22.37,22.37,0,0,1-2.708-3.224l.866-.6a2.014,2.014,0,0,0,.5-2.8L13.48,11.451a2.014,2.014,0,0,0-1.644-.87,1.884,1.884,0,0,0-.655.117,3.635,3.635,0,0,0-.677.333l-.36.253a2.757,2.757,0,0,0-.254.227,3.615,3.615,0,0,0-.926,1.651c-.75,2.812,1.108,7.064,4.624,10.58,2.953,2.953,6.5,4.787,9.257,4.787h0a5.149,5.149,0,0,0,1.322-.163,3.612,3.612,0,0,0,1.651-.926,2.674,2.674,0,0,0,.239-.27l.254-.362a3.629,3.629,0,0,0,.321-.66A1.98,1.98,0,0,0,25.88,23.851Zm0,2.019a2.806,2.806,0,0,1-.236.494l-.23.329a1.892,1.892,0,0,1-.16.179,2.817,2.817,0,0,1-1.29.718,4.336,4.336,0,0,1-1.115.136h0c-2.552,0-5.881-1.744-8.689-4.552-3.268-3.268-5.084-7.3-4.416-9.8a2.821,2.821,0,0,1,.718-1.29,2,2,0,0,1,.163-.149l.326-.23a2.806,2.806,0,0,1,.512-.248,1.077,1.077,0,0,1,.376-.067,1.209,1.209,0,0,1,.984.526l1.82,2.605a1.209,1.209,0,0,1-.3,1.682l-1.186.828a.4.4,0,0,0-.11.544,22.257,22.257,0,0,0,3.029,3.686,22.265,22.265,0,0,0,3.686,3.029.4.4,0,0,0,.544-.11l.828-1.187a1.237,1.237,0,0,1,1.681-.3l2.606,1.821A1.175,1.175,0,0,1,25.878,25.871Z" transform="translate(-8.8 -9.866)"/>
|
||||
<path id="Path_1307" data-name="Path 1307" d="M37.661,11.729A10.046,10.046,0,0,0,31.179,8.8a.4.4,0,0,0-.05.8,9.252,9.252,0,0,1,8.654,8.654.4.4,0,0,0,.4.377h.026a.4.4,0,0,0,.376-.427A10.047,10.047,0,0,0,37.661,11.729Z" transform="translate(-21.921 -8.802)"/>
|
||||
<path id="Path_1308" data-name="Path 1308" d="M30.754,15.594a6.839,6.839,0,0,1,6.4,6.4.4.4,0,0,0,.4.377h.026a.4.4,0,0,0,.376-.427A7.644,7.644,0,0,0,30.8,14.791a.4.4,0,1,0-.05.8Z" transform="translate(-21.697 -12.381)"/>
|
||||
<path id="Path_1309" data-name="Path 1309" d="M30.379,21.582a4.425,4.425,0,0,1,4.138,4.138.4.4,0,0,0,.4.377h.026a.4.4,0,0,0,.376-.427,5.23,5.23,0,0,0-4.891-4.89.4.4,0,0,0-.05.8Z" transform="translate(-21.473 -15.96)"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="22.245" height="20.148" viewBox="0 0 22.245 20.148">
|
||||
<g id="credit_card_icon" transform="translate(0 -24.066)">
|
||||
<path id="Path_1346" data-name="Path 1346" d="M22.208,35.622l-1.689-9.576A2.4,2.4,0,0,0,17.744,24.1L3.261,26.656a2.4,2.4,0,0,0-1.944,2.776l.124.7A2.4,2.4,0,0,0,0,32.333v9.485a2.4,2.4,0,0,0,2.4,2.4H16.773a2.4,2.4,0,0,0,2.4-2.4V38.591l1.1-.193a2.4,2.4,0,0,0,1.944-2.776ZM20.74,36.663a1.082,1.082,0,0,1-.7.448l-.869.153V32.333a2.4,2.4,0,0,0-2.4-2.4H2.734L2.6,29.2a1.089,1.089,0,0,1,.884-1.262l14.483-2.554a1.089,1.089,0,0,1,1.262.883l1.689,9.576A1.082,1.082,0,0,1,20.74,36.663Zm-3.968,6.244H2.4a1.09,1.09,0,0,1-1.089-1.089V37.173H17.862v4.645A1.09,1.09,0,0,1,16.773,42.907ZM2.4,31.244H16.773a1.09,1.09,0,0,1,1.089,1.089V32.9H1.307v-.569A1.09,1.09,0,0,1,2.4,31.244Zm15.466,2.965v1.658H1.307V34.208Z" transform="translate(0 0)"/>
|
||||
<path id="Path_1347" data-name="Path 1347" d="M64.92,396.3H61.955a.654.654,0,0,0,0,1.307H64.92a.654.654,0,0,0,0-1.307Z" transform="translate(-58.631 -356.022)"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="9.214" height="11.344" viewBox="0 0 9.214 11.344">
|
||||
<g id="delete" transform="translate(0.003 0.001)">
|
||||
<path id="Path_1323" data-name="Path 1323" d="M222.664,154.7a.266.266,0,0,0-.266.266v5.021a.266.266,0,0,0,.531,0v-5.021A.266.266,0,0,0,222.664,154.7Zm0,0" transform="translate(-216.493 -150.594)" fill="#d63b4d"/>
|
||||
<path id="Path_1324" data-name="Path 1324" d="M104.664,154.7a.266.266,0,0,0-.266.266v5.021a.266.266,0,0,0,.531,0v-5.021A.266.266,0,0,0,104.664,154.7Zm0,0" transform="translate(-101.628 -150.594)" fill="#d63b4d"/>
|
||||
<path id="Path_1325" data-name="Path 1325" d="M.751,3.376V9.922a1.466,1.466,0,0,0,.39,1.011,1.308,1.308,0,0,0,.949.41H7.117a1.308,1.308,0,0,0,.949-.41,1.466,1.466,0,0,0,.39-1.011V3.376a1.015,1.015,0,0,0-.26-2H6.835V1.048A1.044,1.044,0,0,0,5.783,0H3.424A1.044,1.044,0,0,0,2.372,1.048V1.38H1.012a1.015,1.015,0,0,0-.26,2Zm6.366,7.436H2.09a.841.841,0,0,1-.808-.89V3.4H7.924V9.922A.841.841,0,0,1,7.117,10.812ZM2.9,1.048A.512.512,0,0,1,3.424.53H5.783a.512.512,0,0,1,.521.518V1.38H2.9Zm-1.892.863H8.2a.478.478,0,1,1,0,.956H1.012a.478.478,0,1,1,0-.956Zm0,0" transform="translate(0)" fill="#d63b4d"/>
|
||||
<path id="Path_1326" data-name="Path 1326" d="M163.664,154.7a.266.266,0,0,0-.266.266v5.021a.266.266,0,1,0,.531,0v-5.021A.266.266,0,0,0,163.664,154.7Zm0,0" transform="translate(-159.061 -150.594)" fill="#d63b4d"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="10.116" height="10.116" viewBox="0 0 10.116 10.116">
|
||||
<path id="edit_icon" d="M4.5,12.505v2.107H6.607L12.822,8.4,10.715,6.29Zm9.952-5.737a.56.56,0,0,0,0-.792L13.137,4.661a.56.56,0,0,0-.792,0L11.316,5.689,13.424,7.8l1.028-1.028Z" transform="translate(-4.5 -4.496)" fill="#3666e0"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 336 B |
@ -0,0 +1,18 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="115.115" height="115.114" viewBox="0 0 115.115 115.114">
|
||||
<g id="box_2_" data-name="box (2)" transform="translate(0 -0.002)">
|
||||
<path id="Path_1371" data-name="Path 1371" d="M134.442,152.513l-32.349-1.2,0,0L76,160.011l40.47,13.49,40.47-13.49Z" transform="translate(-58.912 -117.291)" fill="#fff"/>
|
||||
<path id="Path_1372" data-name="Path 1372" d="M216.469,30.237A20.235,20.235,0,1,1,196.234,10,20.234,20.234,0,0,1,216.469,30.237Z" transform="translate(-136.429 -7.752)" fill="#c72525"/>
|
||||
<path id="Path_1373" data-name="Path 1373" d="M172.426,256.019,131.972,250,96,256.97v36.2l35.973,13.49,40.47-13.49v-37.1Z" transform="translate(-74.416 -193.792)" fill="#ffd474"/>
|
||||
<g id="Group_1210" data-name="Group 1210" transform="translate(2.248 15.902)">
|
||||
<path id="Path_1374" data-name="Path 1374" d="M339.847,78.112,335.939,95.77l22.5,7.5L373.275,88.43Z" transform="translate(-262.657 -76.45)" fill="#e8ab22"/>
|
||||
<path id="Path_1375" data-name="Path 1375" d="M256,203.492l11.975,14.967,43.334-13.618L296.469,190Z" transform="translate(-200.69 -163.184)" fill="#e8ab22"/>
|
||||
<path id="Path_1376" data-name="Path 1376" d="M33.839,205.8l40.47,13.49,9.479-15.8L43.318,190Z" transform="translate(-28.479 -163.184)" fill="#e8ab22"/>
|
||||
<path id="Path_1377" data-name="Path 1377" d="M48.416,70.722,10,82.7,24.838,97.54l26.092-8.7,0,0Z" transform="translate(-9.999 -70.722)" fill="#e8ab22"/>
|
||||
</g>
|
||||
<path id="Path_1378" data-name="Path 1378" d="M148.247,374.5A2.248,2.248,0,1,0,146,372.25,2.249,2.249,0,0,0,148.247,374.5Z" transform="translate(-113.174 -286.812)"/>
|
||||
<path id="Path_1379" data-name="Path 1379" d="M14.256,43.069,5.68,57.362A2.248,2.248,0,0,0,6.9,60.652L19.335,64.8v34.58a2.248,2.248,0,0,0,1.459,2.105c7.605,2.852,35.864,13.45,36.015,13.5a2.24,2.24,0,0,0,1.438.02l.02-.006,40.47-13.49a2.249,2.249,0,0,0,1.537-2.133V63.872L113.54,59.7a2.248,2.248,0,0,0,.916-3.735L101.206,42.72l13.249-13.249a2.248,2.248,0,0,0-.927-3.738L81.265,15.775a22.486,22.486,0,0,0-42.317-1.693L1.578,25.735a2.249,2.249,0,0,0-.92,3.736Zm3.831,2.355,36.1,12.033L47.078,69.306l-36.1-12.033Zm24.275-8.758a22.477,22.477,0,0,0,33.876,1.162L90.916,42.72,57.557,53.84,24.2,42.72ZM23.832,66.3c24.765,8.211,23.556,7.961,24.246,7.961a2.249,2.249,0,0,0,1.928-1.092l5.3-8.838v45.3L23.832,97.82V66.3Zm71.947,31.46L59.8,109.749V62.619l7.971,9.962a2.249,2.249,0,0,0,2.43.74l25.573-8.036Zm12.875-41.231L70.325,68.571l-9-11.247L97.419,45.293ZM97.419,40.148l-18.33-6.109a22.548,22.548,0,0,0,3.2-11.553c0-.571-.024-1.141-.067-1.709l26.417,8.154ZM59.8,4.5A17.963,17.963,0,0,1,77.792,22.485,17.984,17.984,0,0,1,59.8,40.472,17.987,17.987,0,1,1,59.8,4.5ZM37.561,19.225a22.669,22.669,0,0,0-.239,3.26,22.348,22.348,0,0,0,2.492,10.29l-22.12,7.373L6.467,28.921Z"/>
|
||||
<path id="Path_1380" data-name="Path 1380" d="M185.216,387.573l5,1.875a2.248,2.248,0,1,0,1.579-4.21l-5-1.875a2.248,2.248,0,1,0-1.579,4.21Z" transform="translate(-142.442 -297.057)"/>
|
||||
<path id="Path_1381" data-name="Path 1381" d="M162.524,416.981l-13.49-5.059a2.248,2.248,0,0,0-1.579,4.21l13.49,5.059a2.248,2.248,0,0,0,1.579-4.21Z" transform="translate(-113.171 -319.196)"/>
|
||||
<path id="Icon_ionic-ios-close" data-name="Icon ionic-ios-close" d="M23.334,21.027l6.958-6.958a1.63,1.63,0,0,0-2.306-2.306l-6.958,6.958L14.07,11.763a1.63,1.63,0,1,0-2.306,2.306l6.958,6.958-6.958,6.958A1.63,1.63,0,0,0,14.07,30.29l6.958-6.958,6.958,6.958a1.63,1.63,0,1,0,2.306-2.306Z" transform="translate(38.674 1.065)" fill="#fff"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
@ -0,0 +1,25 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="81.943" height="22.259" viewBox="0 0 81.943 22.259">
|
||||
<g id="hmg_shipping_logo" transform="translate(-114.266 -194)">
|
||||
<g id="Path_1368" data-name="Path 1368" transform="translate(114.266 194)" fill="#fff">
|
||||
<path d="M 79.57523345947266 21.75907135009766 L 2.36798882484436 21.75907135009766 C 1.337977647781372 21.75907135009766 0.4999999105930328 20.92110443115234 0.4999999105930328 19.89109230041504 L 0.4999999105930328 2.367981910705566 C 0.4999999105930328 1.337970972061157 1.337977647781372 0.5000042319297791 2.36798882484436 0.5000042319297791 L 79.57523345947266 0.5000042319297791 C 80.60524749755859 0.5000042319297791 81.44322204589844 1.337970972061157 81.44322204589844 2.367981910705566 L 81.44322204589844 19.89109230041504 C 81.44322204589844 20.92110443115234 80.60524749755859 21.75907135009766 79.57523345947266 21.75907135009766 Z" stroke="none"/>
|
||||
<path d="M 2.367988586425781 1.000003814697266 C 1.613677978515625 1.000003814697266 1 1.613681793212891 1 2.367982864379883 L 1 19.89109420776367 C 1 20.64539337158203 1.613677978515625 21.25907135009766 2.367988586425781 21.25907135009766 L 79.57523345947266 21.25907135009766 C 80.32954406738281 21.25907135009766 80.94322204589844 20.64539337158203 80.94322204589844 19.89109420776367 L 80.94322204589844 2.367982864379883 C 80.94322204589844 1.613681793212891 80.32954406738281 1.000003814697266 79.57523345947266 1.000003814697266 L 2.367988586425781 1.000003814697266 M 2.367988586425781 3.814697265625e-06 L 79.57523345947266 3.814697265625e-06 C 80.88303375244141 3.814697265625e-06 81.94322204589844 1.060182571411133 81.94322204589844 2.367982864379883 L 81.94322204589844 19.89109420776367 C 81.94322204589844 21.19889259338379 80.88303375244141 22.25907135009766 79.57523345947266 22.25907135009766 L 2.367988586425781 22.25907135009766 C 1.0601806640625 22.25907135009766 0 21.19889259338379 0 19.89109420776367 L 0 2.367982864379883 C 0 1.060182571411133 1.0601806640625 3.814697265625e-06 2.367988586425781 3.814697265625e-06 Z" stroke="none" fill="#ccc"/>
|
||||
</g>
|
||||
<g id="Group_417" data-name="Group 417" transform="translate(119.082 194)">
|
||||
<g id="Group_22" data-name="Group 22">
|
||||
<path id="Path_20" data-name="Path 20" d="M78.019,99.015h-.15v-.279a.674.674,0,0,1-.613.328c-.679,0-.68-.46-.68-.647v-.96h.151v.954c0,.307.107.513.533.513a.55.55,0,0,0,.609-.559v-.908h.15Zm-2.548-1.606a.828.828,0,1,1-.834.829A.8.8,0,0,1,75.471,97.409Zm0,1.514a.687.687,0,1,0-.684-.687A.656.656,0,0,0,75.471,98.923Zm-1.81-1.466h.151v.326a.622.622,0,0,1,.6-.374.318.318,0,0,1,.111.02l.007.162a.376.376,0,0,0-.161-.022.558.558,0,0,0-.557.605v.843h-.151Zm-.5.307c-.008-.043-.008-.306-.008-.306h.151v1.473c0,.356-.122.746-.81.746-.454,0-.716-.143-.765-.526l.15-.012c.033.247.192.4.616.4.561,0,.659-.319.659-.6v-.282a.807.807,0,1,1-.676-1.246A.709.709,0,0,1,73.162,97.764Zm-1.341.425a.6.6,0,0,0,.669.669.613.613,0,0,0,.662-.673.666.666,0,0,0-1.331,0ZM70.548,96.85H70.7v2.166h-.149Zm-1.78,1.1c.05-.406.246-.544.69-.544.426,0,.679.106.679.461v.862c0,.118,0,.172.088.172a.375.375,0,0,0,.126-.023l.012.137a.457.457,0,0,1-.17.027.152.152,0,0,1-.165-.1.4.4,0,0,1-.021-.109c0-.031,0-.065,0-.1a.773.773,0,0,1-.691.329,1.079,1.079,0,0,1-.147-.008.643.643,0,0,1-.2-.052.418.418,0,0,1-.26-.419c0-.325.263-.434.56-.453l.51-.036c.149-.012.214-.028.214-.208,0-.2-.1-.339-.533-.339-.381,0-.5.123-.534.395Zm1.219.215a.44.44,0,0,1-.229.069l-.495.036c-.244.019-.41.09-.41.312,0,.3.287.337.466.337.292,0,.667-.138.667-.495v-.26Zm-1.639-.207a.573.573,0,0,0-.611-.411.687.687,0,0,0,0,1.373.6.6,0,0,0,.63-.457l.152-.008a.733.733,0,0,1-.782.606.828.828,0,1,1,0-1.655.693.693,0,0,1,.76.542Zm-1.877-.5h.15v1.558h-.15Zm-.5.795a.633.633,0,0,0-.656-.7.688.688,0,1,0,.656.7Zm-.019.463a.677.677,0,0,1-.642.35.828.828,0,0,1,0-1.655.717.717,0,0,1,.639.348l0-.905H66.1v2.166h-.151v-.3Zm-1.76-.578a.624.624,0,0,0-.66-.587.638.638,0,0,0-.658.587Zm-1.319.14a.635.635,0,0,0,.687.647.587.587,0,0,0,.612-.432l.152-.007a.742.742,0,0,1-.78.58.773.773,0,0,1-.823-.839.82.82,0,1,1,1.639.042ZM60,97.456h.15v.239a.667.667,0,0,1,.559-.286.517.517,0,0,1,.561.342.585.585,0,0,1,.562-.342c.422,0,.617.2.617.554v1.053H62.3V98.008a.42.42,0,0,0-.463-.459.473.473,0,0,0-.535.51v.957h-.15V97.981c0-.264-.133-.432-.464-.432a.5.5,0,0,0-.535.539v.926H60Zm18.376,0h.151v.3a.675.675,0,0,1,.642-.35.829.829,0,0,1,0,1.656.712.712,0,0,1-.638-.348l-.006.907h-.151V97.456Zm.134.765a.632.632,0,0,0,.656.7.688.688,0,1,0-.656-.7ZM66.438,97a.108.108,0,1,1,.108.114A.112.112,0,0,1,66.438,97Z" transform="translate(-53.017 -82.139)" fill="#5f6765"/>
|
||||
<path id="Path_21" data-name="Path 21" d="M243.577,99.414a.109.109,0,1,1,.108.114A.112.112,0,0,1,243.577,99.414Zm-.3,0a.108.108,0,1,1,.216,0,.111.111,0,0,1-.107.114A.113.113,0,0,1,243.281,99.414Zm16.2,0a.111.111,0,0,1,.107-.114.114.114,0,0,1,0,.228A.109.109,0,0,1,259.481,99.411Zm-8.593-2.472a.107.107,0,1,1,.108.114A.109.109,0,0,1,250.889,96.939Zm-.3,0a.108.108,0,1,1,.109.114A.11.11,0,0,1,250.592,96.939Zm-8.979,0a.108.108,0,1,1,.108.114A.112.112,0,0,1,241.613,96.944Zm-.3,0a.109.109,0,1,1,.108.114A.112.112,0,0,1,241.317,96.944Zm23.346-.135h.151v2.165h-.151Zm-15.746.02h.15v2.166h-.15Zm-.609,1.513V96.825h.151v1.522c0,.187-.006.647-.684.647h-2.435a.635.635,0,0,1-.6-.261c-.079.156-.253.29-.619.29s-.538-.133-.617-.29a.633.633,0,0,1-.6.261h-.452c-.173,0-.2-.132-.194-.313a.81.81,0,0,1-.7.341.828.828,0,1,1,.838-.812l0,.462c0,.118,0,.182.088.182h.424c.428,0,.531-.206.531-.513v-.925h.15v.954c0,.307.115.512.54.512s.531-.2.531-.512v-.954h.15v.949c0,.294.113.49.532.49h.477v-2.03h.15v.892a.674.674,0,0,1,.613-.328c.679,0,.679.46.679.648v.819h.519C248.206,98.855,248.308,98.649,248.308,98.341Zm-7.416-.13a.676.676,0,1,0,.659-.7A.662.662,0,0,0,240.892,98.211Zm6.215-.17c0-.308-.107-.513-.531-.513a.551.551,0,0,0-.611.559v.768h1.142Zm4.568.156v.475c0,.119,0,.182.088.182h.866V97.99c0-.189.006-.647.685-.647a1.267,1.267,0,0,1,.249.023l-.078.129a1.081,1.081,0,0,0-.165-.013c-.425,0-.54.206-.54.513v.858h1.131v.14h-2.181a.154.154,0,0,1-.163-.093.637.637,0,0,1-.03-.208.844.844,0,0,1-.7.331.827.827,0,1,1,.837-.825Zm-1.5.013a.676.676,0,1,0,.66-.7A.666.666,0,0,0,250.175,98.21Zm12.871.191c.016.275.133.454.528.454.415,0,.527-.208.527-.513V96.79h.15v1.557c0,.186-.006.644-.678.647a.653.653,0,0,1-.584-.235.846.846,0,0,1-1.557,0,.658.658,0,0,1-.588.236h-1.8a.652.652,0,0,1-.587-.237.847.847,0,0,1-1.558,0,.652.652,0,0,1-.585.234H255.8c-.026.325-.186.642-.805.642-.455,0-.715-.142-.765-.525l.149-.013c.033.244.191.4.616.4.492,0,.62-.253.653-.5h-.62a.782.782,0,0,1-.844-.822.81.81,0,0,1,1.62.012v.669h.517c.376,0,.5-.155.524-.4,0-.047.007-.087.01-.12a.789.789,0,0,1,.827-.717.8.8,0,0,1,.832.8c.015.261.138.433.53.433H260.2v-.866c0-.307-.1-.512-.53-.512a.494.494,0,0,0-.443.168l-.131-.093a.68.68,0,0,1,.569-.214c.679,0,.686.46.686.647v.871h.5c.4,0,.507-.176.528-.443a.835.835,0,0,1,1.666-.033Zm-7.39-.237a.6.6,0,0,0-.665-.645.612.612,0,0,0-.655.647.644.644,0,0,0,.712.687h.608Zm1.344.312a.683.683,0,0,0,1.366-.029c0-.021,0-.04,0-.057a.684.684,0,0,0-1.359-.036A.6.6,0,0,0,257,98.475Zm5.9-.021c0-.022,0-.037,0-.052a.683.683,0,0,0-1.364.027.683.683,0,1,0,1.366.026Zm-18.251.96a.108.108,0,1,1,.108.114A.112.112,0,0,1,244.645,99.414Z" transform="translate(-212.721 -82.086)" fill="#5f6765"/>
|
||||
<path id="Path_22" data-name="Path 22" d="M10.265,8.049a.249.249,0,0,1-.25.246.253.253,0,0,1-.255-.246.245.245,0,0,1,.255-.235A.241.241,0,0,1,10.265,8.049ZM24.791,6.639V5.126a.2.2,0,0,1,.226-.186.2.2,0,0,1,.226.193V6.572c0,.6.021,1.018-.307,1.327A1.313,1.313,0,0,1,24,8.218a1.383,1.383,0,0,1-.949-.328,1.2,1.2,0,0,1-.3-.973V5.136a.2.2,0,0,1,.23-.2.206.206,0,0,1,.233.207V6.962a.828.828,0,0,0,.194.68.876.876,0,0,0,.6.2.818.818,0,0,0,.566-.2C24.811,7.43,24.791,7.184,24.791,6.639ZM2.078,8.049a.25.25,0,0,1-.251.246.254.254,0,0,1-.256-.246.246.246,0,0,1,.256-.235A.242.242,0,0,1,2.078,8.049Zm4.484,0a.25.25,0,0,1-.251.246.254.254,0,0,1-.256-.246.246.246,0,0,1,.256-.235A.242.242,0,0,1,6.563,8.049Zm.689,0A.25.25,0,0,1,7,8.294a.252.252,0,0,1-.255-.246A.245.245,0,0,1,7,7.814.242.242,0,0,1,7.252,8.049Zm5.377-2.935.094-.047a1.613,1.613,0,0,1,.421-.118,2.131,2.131,0,0,1,.287-.02,1.56,1.56,0,0,1,1.575,1.7,2.148,2.148,0,0,1-.041.425h2.706a.878.878,0,0,0,.606-.2.829.829,0,0,0,.2-.68V3.959a.233.233,0,0,1,.462-.009V6.123a1.194,1.194,0,0,1-.3.975,1.37,1.37,0,0,1-.949.327H15.137l-4.178,0a1.275,1.275,0,0,1-.846-.315,1.086,1.086,0,0,1-.08-.086,1.121,1.121,0,0,1-.081.086,1.313,1.313,0,0,1-.935.318H7.637A1.373,1.373,0,0,1,6.72,7.1c-.1-.045-.121-.017-.151.009a1.308,1.308,0,0,1-.932.319H4.294a1.356,1.356,0,0,1-.9-.328c-.094-.045-.121-.017-.15.009a1.264,1.264,0,0,1-.846.317l-1.149,0A1.375,1.375,0,0,1,.3,7.1,1.2,1.2,0,0,1,0,6.124V5.132a.207.207,0,0,1,.232-.2.2.2,0,0,1,.23.207v1.03a.826.826,0,0,0,.2.68.878.878,0,0,0,.606.2l1.132,0a.777.777,0,0,0,.492-.2A.725.725,0,0,0,3.1,6.293V5.13a.206.206,0,0,1,.23-.2.2.2,0,0,1,.23.207v1.03a.829.829,0,0,0,.194.68.837.837,0,0,0,.546.2l1.356,0a.8.8,0,0,0,.564-.2.74.74,0,0,0,.209-.59V5.131a.232.232,0,0,1,.461.009V6.172a.826.826,0,0,0,.2.68.859.859,0,0,0,.568.2H9.032a.805.805,0,0,0,.564-.2.8.8,0,0,0,.208-.66c0-.128,0-.267,0-.417V5.129a.228.228,0,0,1,.45-.008v.729c0,.545-.021.79.212,1.008a.784.784,0,0,0,.491.2h3.554a1.794,1.794,0,0,0,.057-.462,1.169,1.169,0,0,0-1.163-1.28h-.074a1.883,1.883,0,0,0-.287.03c-.168.03-.142.026-.3.064S12.518,5.211,12.629,5.114ZM24.251,3.9A.248.248,0,0,1,24,4.14a.254.254,0,0,1-.256-.243A.246.246,0,0,1,24,3.66.242.242,0,0,1,24.251,3.9ZM35.888,8.049a.248.248,0,0,1-.249.246.254.254,0,0,1-.257-.246.247.247,0,0,1,.257-.235A.241.241,0,0,1,35.888,8.049Zm.688,0a.25.25,0,0,1-.25.246.253.253,0,0,1-.256-.246.246.246,0,0,1,.256-.235A.242.242,0,0,1,36.576,8.049Zm12.506-.626.008-.377h1.838c.716-.021.9-.317.917-.832-.027-.518-.2-.864-.917-.886a2.1,2.1,0,0,0-.308.036,2.7,2.7,0,0,0-.3.064c-.165.051-.229-.2-.119-.293l.093-.045a1.614,1.614,0,0,1,.422-.119,2.174,2.174,0,0,1,.289-.019A1.146,1.146,0,0,1,52.273,6.2a1.131,1.131,0,0,1-1.267,1.223Zm-.321-.212a.25.25,0,0,1-.251.244.253.253,0,0,1-.255-.244.245.245,0,0,1,.255-.236A.242.242,0,0,1,48.76,7.211Zm-1.589-1.43c0,.6.02,1.018-.31,1.328a1.309,1.309,0,0,1-.932.318,1.374,1.374,0,0,1-.949-.327l-.142.009a1.314,1.314,0,0,1-.933.318,1.492,1.492,0,0,1-.782-.2v.2l-2.514,0a1.373,1.373,0,0,1-.947-.327c-.094-.045-.12-.017-.148.009a1.317,1.317,0,0,1-.935.318l-1.633,0a1.341,1.341,0,0,1-.868-.326h-.135A1.376,1.376,0,0,1,35,7.425l-2.223,0a1.3,1.3,0,0,1-.3.474,1.308,1.308,0,0,1-.932.319,1.38,1.38,0,0,1-.95-.328.875.875,0,0,1-.262-.469l-2.712.007a1.376,1.376,0,0,1-.949-.327,1.2,1.2,0,0,1-.3-.975V3.949a.233.233,0,0,1,.462.009V6.172a.829.829,0,0,0,.194.68.88.88,0,0,0,.606.2l2.638,0,.023-.137V6.277a1.24,1.24,0,0,1,.3-1.01,1.38,1.38,0,0,1,.95-.328,1.309,1.309,0,0,1,.932.319,1.394,1.394,0,0,1,.308,1.125v.353c0,.111,0,.216,0,.315h2.2a.877.877,0,0,0,.605-.2.711.711,0,0,0,.194-.566V5.137a.206.206,0,0,1,.23-.208.208.208,0,0,1,.233.2l0,.321,0,.674c0,.3-.007.539.2.729a.827.827,0,0,0,.51.2l1.647,0a.811.811,0,0,0,.563-.2c.23-.218.211-.463.211-1.008l-.009-.761V3.949a.233.233,0,0,1,.462.009V5.779c0,.149,0,.286,0,.414a.806.806,0,0,0,.2.658.876.876,0,0,0,.6.2h2.038V5.126a.2.2,0,0,1,.2-.184c.179.009.25.081.258.185V6.348a.667.667,0,0,0,.193.5.88.88,0,0,0,.606.2.812.812,0,0,0,.564-.2c.23-.218.209-.463.209-1.008V5.126a.228.228,0,0,1,.45.008V6.173a.826.826,0,0,0,.194.679.877.877,0,0,0,.605.2.809.809,0,0,0,.564-.2c.23-.218.209-.463.209-1.008V5.126a.205.205,0,0,1,.227-.186.2.2,0,0,1,.226.194v.646ZM32.12,7.647c.211-.2.211-.42.209-.873V6.411c0-.5-.006-.712-.209-.9a.81.81,0,0,0-.566-.2.872.872,0,0,0-.6.2.823.823,0,0,0-.194.68v.769a.824.824,0,0,0,.194.68.872.872,0,0,0,.6.2A.8.8,0,0,0,32.12,7.647ZM20.062,7.423V3.958a.233.233,0,0,1,.462-.009V7.423Z" transform="translate(0 0.206)" fill="#3d4543"/>
|
||||
<path id="Path_23" data-name="Path 23" d="M12.319,55.547V54.034a.229.229,0,0,1,.452.008V55.48c0,.6.019,1.017-.307,1.326a1.315,1.315,0,0,1-.936.319,1.383,1.383,0,0,1-.949-.329,1.2,1.2,0,0,1-.3-.974V54.044a.233.233,0,0,1,.462.012V55.87a.827.827,0,0,0,.194.68.879.879,0,0,0,.605.2.81.81,0,0,0,.564-.2C12.34,56.337,12.319,56.091,12.319,55.547Zm1.236,1.514V54.044a.2.2,0,0,1,.23-.2.2.2,0,0,1,.229.185v2.662h1.421v.368H13.555Zm5.6,0V54.029a.2.2,0,0,1,.2-.185c.179.009.25.081.258.185V54.3l0,2.758h-.463Zm1.236,0,.339-2.984a.287.287,0,0,1,.317-.228.318.318,0,0,1,.3.2l.932,2.421.9-2.425a.312.312,0,0,1,.275-.2.293.293,0,0,1,.334.227l.354,2.985h-.452l-.283-2.6-.968,2.6h-.381l-.99-2.6-.26,2.6Zm9.706-.646-.008-2.239v-.135a.21.21,0,0,1,.418-.01v3.031h-.459L28.439,54.5l.009,2.562h-.42V54.072c0-.193.175-.223.285-.223.148.006.2.069.3.221Zm5.572.646V54.034a.237.237,0,0,1,.462-.009v2.669h1.421v.368Zm3.71,0v-3.04a.238.238,0,0,1,.462.009v1.164h1.569V54.03a.237.237,0,0,1,.462-.006v3.036h-.462v-1.5H39.845v1.5Zm9.363,0V54.028a.207.207,0,0,1,.23-.184.2.2,0,0,1,.23.182v3.035ZM.227,53.856h.53a2.094,2.094,0,0,1,1.574.409,1.676,1.676,0,0,1,0,2.364,2.092,2.092,0,0,1-1.578.433H0v-2.97A.208.208,0,0,1,.227,53.856Zm2.123,1.571a1.192,1.192,0,0,0-.364-.923c-.3-.279-.638-.3-1.229-.3h-.3v2.509H.884A1.507,1.507,0,0,0,2,56.384,1.3,1.3,0,0,0,2.349,55.427ZM3.5,54.081c-.006-.157.092-.226.234-.226h.527a1.462,1.462,0,0,1,1.089.256.836.836,0,0,1,.267.639.754.754,0,0,1-.211.553.92.92,0,0,1-.549.254.5.5,0,0,1,.292.13,1.437,1.437,0,0,1,.267.447l.442.928H5.374l-.395-.836c-.237-.5-.35-.539-.814-.539H3.951v1.374H3.5V54.081Zm1.661.668a.531.531,0,0,0-.15-.384.95.95,0,0,0-.7-.169H3.952v1.15h.159a1.258,1.258,0,0,0,.88-.193A.56.56,0,0,0,5.161,54.749ZM15.7,57.061l1.057-2.739.108-.257a.307.307,0,0,1,.308-.216.316.316,0,0,1,.331.216l.128.306,1.049,2.69h-.484l-.311-.839H16.472l-.312.839Zm2.057-1.192-.58-1.567L16.6,55.869Zm6.795,1.192,1.057-2.739.107-.257a.309.309,0,0,1,.31-.216.316.316,0,0,1,.331.216l.129.306,1.046,2.69h-.481l-.314-.839H25.323l-.312.839ZM26.6,55.869,26.027,54.3l-.576,1.567Zm5.631,1.192,1.057-2.739.107-.257a.308.308,0,0,1,.308-.216.314.314,0,0,1,.329.216l.129.306,1.046,2.69H34.73l-.311-.839H33.009l-.314.839Zm2.057-1.192-.58-1.567-.574,1.567Zm8.041,1.192,1.056-2.739.108-.257a.307.307,0,0,1,.308-.216.318.318,0,0,1,.332.216l.127.306,1.047,2.69H44.83l-.314-.839H43.106l-.313.839Zm2.058-1.192L43.808,54.3l-.573,1.567Zm1.43,1.192v-2.9c0-.229.058-.319.227-.319h.717a1.244,1.244,0,0,1,.917.247.8.8,0,0,1,.268.618.685.685,0,0,1-.548.7.7.7,0,0,1,.656.718.848.848,0,0,1-.256.632c-.329.308-.76.3-1.375.3H45.82Zm1.667-2.344a.483.483,0,0,0-.133-.356,1.1,1.1,0,0,0-.79-.173h-.3v1.08h.263a1.241,1.241,0,0,0,.8-.179A.458.458,0,0,0,47.487,54.717Zm.1,1.422a.48.48,0,0,0-.155-.361,1.284,1.284,0,0,0-.887-.179h-.283v1.109h.381a1.042,1.042,0,0,0,.8-.2A.53.53,0,0,0,47.589,56.139Zm2.448-2.3h.945a1.246,1.246,0,0,1,.917.247.805.805,0,0,1,.269.618.685.685,0,0,1-.549.7.7.7,0,0,1,.655.718.852.852,0,0,1-.255.632c-.331.308-.759.3-1.376.3h-.605V53.844Zm1.667.873a.492.492,0,0,0-.132-.356,1.1,1.1,0,0,0-.789-.173h-.3v1.08h.262a1.251,1.251,0,0,0,.8-.179A.459.459,0,0,0,51.7,54.717Zm.1,1.422a.476.476,0,0,0-.155-.361,1.284,1.284,0,0,0-.887-.179h-.283v1.109h.381c.4,0,.611-.029.795-.2A.526.526,0,0,0,51.808,56.139ZM7.545,54.649c0-.506.432-.861,1.052-.869a1.986,1.986,0,0,1,.736.156c.166.064.1.369-.086.31-.157-.037-.141-.037-.31-.071a1.113,1.113,0,0,0-.247-.028c-.417,0-.684.173-.684.462,0,.3.3.4.641.564.3.145.974.381.974,1.014,0,.531-.414.94-1.123.94a1.737,1.737,0,0,1-1.052-.347l.222-.3a1.544,1.544,0,0,0,.81.275c.421,0,.667-.236.667-.531,0-.353-.435-.525-.805-.695C7.9,55.335,7.545,55.122,7.545,54.649Z" transform="translate(0 -44.081)" fill="#3d4543"/>
|
||||
<g id="Group_4" data-name="Group 4" transform="translate(56.036 3.902)">
|
||||
<g id="Group_1" data-name="Group 1" transform="translate(0)">
|
||||
<path id="Path_3" data-name="Path 3" d="M1.455,0H13.075A1.436,1.436,0,0,1,14.53,1.417v11.7a1.436,1.436,0,0,1-1.455,1.417H1.455A1.436,1.436,0,0,1,0,13.113V1.417A1.436,1.436,0,0,1,1.455,0Z" fill="#5ab145"/>
|
||||
</g>
|
||||
<g id="Group_2" data-name="Group 2" transform="translate(1.733 0.952)">
|
||||
<path id="Path_1" data-name="Path 1" d="M880.9,357.036v3.848a.761.761,0,0,1-.774.747h-.632a1.259,1.259,0,0,0-.88.355,1.192,1.192,0,0,0-.365.857,1.228,1.228,0,0,0,1.224,1.212h.518a.917.917,0,0,1,.909.9v2.62a.519.519,0,0,1-.528.509h-3.1a.943.943,0,0,1-.94-.774v-.043a.951.951,0,0,1-.006-.1v-2.4c0-.015,0-.03-.006-.045a.964.964,0,0,0-1.908.148v2.375a.859.859,0,0,1-.873.843h-1.892a1.255,1.255,0,0,0-.786.275,6.778,6.778,0,0,0-.883.859,9.754,9.754,0,0,1,.586-1.133,16.88,16.88,0,0,1,3.642-4.031c1.056-.895,2.119-1.69,3.006-2.424q.222-.183.428-.362a14.883,14.883,0,0,0,2.946-3.668l.057-.1c.056-.1.107-.189.153-.274C880.831,357.16,880.865,357.1,880.9,357.036Z" transform="translate(-869.833 -356.554)" fill="#fff"/>
|
||||
<path id="Path_2" data-name="Path 2" d="M879.561,352.31c-.116.23-.31.6-.58,1.047a14.676,14.676,0,0,1-2.815,3.447c-.219.19-.452.384-.7.583-.9.734-1.96,1.529-2.994,2.424a16.182,16.182,0,0,0-3.432,3.892l-.011.02-.005.01a4.735,4.735,0,0,0-.44,1.182V360.5a.7.7,0,0,1,.709-.685h.719a1.229,1.229,0,0,0,1.245-1.212,1.194,1.194,0,0,0-.364-.858,1.26,1.26,0,0,0-.881-.355h-.539a.874.874,0,0,1-.888-.858v-2.72a.46.46,0,0,1,.468-.452h3.222a.876.876,0,0,1,.891.861v2.3a.939.939,0,0,0,.987.92.95.95,0,0,0,.92-.942v-2.5a.646.646,0,0,1,.657-.635h2.163a1.5,1.5,0,0,0,.877-.282A3.632,3.632,0,0,0,879.561,352.31Z" transform="translate(-868.586 -352.31)" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 17 KiB |
@ -0,0 +1,17 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="95.266" height="25.878" viewBox="0 0 95.266 25.878">
|
||||
<g id="hmg_shipping_logo" transform="translate(-114.266 -194)">
|
||||
<g id="Path_1368" data-name="Path 1368" transform="translate(114.266 194)" fill="#fff">
|
||||
<path d="M 92.51264953613281 25.37797546386719 L 2.752974987030029 25.37797546386719 C 1.510674953460693 25.37797546386719 0.5 24.36730003356934 0.5 23.125 L 0.5 2.752975225448608 C 0.5 1.510675191879272 1.510674953460693 0.5000002384185791 2.752974987030029 0.5000002384185791 L 92.51264953613281 0.5000002384185791 C 93.75495147705078 0.5000002384185791 94.765625 1.510675191879272 94.765625 2.752975225448608 L 94.765625 23.125 C 94.765625 24.36730003356934 93.75495147705078 25.37797546386719 92.51264953613281 25.37797546386719 Z" stroke="none"/>
|
||||
<path d="M 2.752975463867188 1 C 1.786384582519531 1 1 1.786388397216797 1 2.752975463867188 L 1 23.125 C 1 24.09158706665039 1.786384582519531 24.87797546386719 2.752975463867188 24.87797546386719 L 92.51264953613281 24.87797546386719 C 93.47924041748047 24.87797546386719 94.265625 24.09158706665039 94.265625 23.125 L 94.265625 2.752975463867188 C 94.265625 1.786388397216797 93.47924041748047 1 92.51264953613281 1 L 2.752975463867188 1 M 2.752975463867188 0 L 92.51264953613281 0 C 94.03307342529297 0 95.265625 1.232549667358398 95.265625 2.752975463867188 L 95.265625 23.125 C 95.265625 24.64542579650879 94.03307342529297 25.87797546386719 92.51264953613281 25.87797546386719 L 2.752975463867188 25.87797546386719 C 1.232551574707031 25.87797546386719 0 24.64542579650879 0 23.125 L 0 2.752975463867188 C 0 1.232549667358398 1.232551574707031 0 2.752975463867188 0 Z" stroke="none" fill="#ccc"/>
|
||||
</g>
|
||||
<g id="Group_417" data-name="Group 417" transform="translate(-1932.136 317)">
|
||||
<g id="Group_22" data-name="Group 22" transform="translate(2052 -119)">
|
||||
<path id="Path_19" data-name="Path 19" d="M497.257,14.133s.591,0,1.007,0l3.154.015c.376,0,.69-.4.708-.978l0-2.636c0-.562.252-1,.641-1.027l.967-.008c.39.024.658.468.658,1.027l0,2.651c.018.578.28.955.659.955l4.246.011.008-3.258c0-.56-.269-1-.66-1.02l-1.706-.008c-.378,0-.674-.4-.691-.977l-.007-.881c.019-.578.317-.976.7-.976l1.716.005c.39-.026.644-.486.644-1.045l0-4.066a1.73,1.73,0,0,1-1.314.821H505.1c-.376,0-.69.41-.708.988V6.333c-.018.578-.313.985-.69.985l-.873-.007c-.379,0-.681-.4-.7-.97l0-2.64c-.018-.578-.317-.967-.694-.967h-4.188V5.982c0,.562.263,1.009.654,1.036l1.716-.007c.388.026.663.488.663,1.046l-.005.752c0,.56-.265,1.009-.655,1.035l-1.718,0c-.391.027-.654.471-.654,1.03ZM511.678,1.685V15.267a1.727,1.727,0,0,1-1.745,1.643h-13.4a1.719,1.719,0,0,1-1.737-1.644V1.659A1.728,1.728,0,0,1,496.53.01l13.393.005A1.757,1.757,0,0,1,511.678,1.685Z" transform="translate(-427.842 -0.01)" fill="#ed1c2b"/>
|
||||
<path id="Path_20" data-name="Path 20" d="M80.948,99.367h-.175v-.325a.784.784,0,0,1-.713.382c-.789,0-.79-.534-.79-.752V97.555h.176v1.11c0,.357.124.6.62.6a.64.64,0,0,0,.708-.649V97.556h.175ZM77.986,97.5a.963.963,0,1,1-.97.963A.932.932,0,0,1,77.986,97.5Zm0,1.76a.8.8,0,1,0-.8-.8A.762.762,0,0,0,77.986,99.26Zm-2.1-1.7h.176v.379a.723.723,0,0,1,.7-.434.37.37,0,0,1,.129.023l.008.188a.437.437,0,0,0-.187-.026.648.648,0,0,0-.648.7v.98h-.176Zm-.58.357c-.009-.05-.009-.356-.009-.356h.176v1.713c0,.414-.142.867-.942.867-.528,0-.832-.166-.889-.612l.175-.014c.038.287.223.463.716.463.652,0,.766-.371.766-.7v-.327a.938.938,0,1,1-.786-1.449A.825.825,0,0,1,75.3,97.912Zm-1.559.494a.7.7,0,0,0,.778.778.713.713,0,0,0,.77-.782.775.775,0,0,0-1.548,0Zm-1.48-1.556h.173v2.518h-.173Zm-2.069,1.281c.058-.472.285-.632.8-.632.5,0,.789.123.789.536v1c0,.137,0,.2.1.2a.435.435,0,0,0,.146-.027l.014.16a.531.531,0,0,1-.2.031.177.177,0,0,1-.192-.114.461.461,0,0,1-.024-.127c0-.037,0-.076,0-.12a.9.9,0,0,1-.8.383,1.254,1.254,0,0,1-.17-.009.748.748,0,0,1-.235-.061.487.487,0,0,1-.3-.487c0-.378.306-.5.651-.526l.593-.042c.173-.014.249-.032.249-.242,0-.231-.12-.394-.62-.394-.442,0-.576.143-.621.459Zm1.417.25a.512.512,0,0,1-.267.08l-.575.042c-.284.022-.476.1-.476.363,0,.35.334.392.541.392.34,0,.775-.161.775-.575v-.3Zm-1.905-.241a.666.666,0,0,0-.71-.478.8.8,0,0,0,0,1.6.694.694,0,0,0,.732-.532l.177-.009a.852.852,0,0,1-.909.7A.962.962,0,1,1,69,97.5a.805.805,0,0,1,.884.631Zm-2.182-.586H67.7v1.812h-.175Zm-.583.924a.736.736,0,0,0-.763-.816.8.8,0,1,0,.763.816Zm-.022.539a.787.787,0,0,1-.747.407.963.963,0,0,1,0-1.924.834.834,0,0,1,.743.4l.005-1.053H67.1v2.518H66.92v-.353Zm-2.046-.672a.726.726,0,0,0-.767-.682.741.741,0,0,0-.764.682Zm-1.533.162a.738.738,0,0,0,.8.752.682.682,0,0,0,.712-.5l.177-.008a.863.863,0,0,1-.907.674.9.9,0,0,1-.957-.976.953.953,0,1,1,1.905.049ZM60,97.555h.175v.277a.775.775,0,0,1,.649-.333.6.6,0,0,1,.652.4.68.68,0,0,1,.654-.4c.491,0,.717.235.717.644v1.225h-.175V98.2a.489.489,0,0,0-.539-.533.55.55,0,0,0-.622.593v1.112h-.175v-1.2c0-.307-.154-.5-.54-.5a.58.58,0,0,0-.622.626v1.077H60Zm21.364,0h.176v.352a.785.785,0,0,1,.747-.407.964.964,0,0,1,0,1.925.828.828,0,0,1-.741-.4l-.007,1.054h-.176V97.555Zm.156.889a.735.735,0,0,0,.763.816.8.8,0,1,0-.763-.816ZM67.485,97.02a.126.126,0,1,1,.126.133A.13.13,0,0,1,67.485,97.02Z" transform="translate(-51.882 -83.747)" fill="#5f6765"/>
|
||||
<path id="Path_21" data-name="Path 21" d="M244.039,99.841a.127.127,0,1,1,.126.133A.13.13,0,0,1,244.039,99.841Zm-.345,0a.131.131,0,0,1,.127-.133.133.133,0,0,1,0,.265A.131.131,0,0,1,243.694,99.841Zm18.835,0a.129.129,0,0,1,.124-.133.133.133,0,0,1,0,.265A.126.126,0,0,1,262.528,99.837Zm-9.99-2.874a.125.125,0,1,1,.126.133A.127.127,0,0,1,252.539,96.963Zm-.345,0a.126.126,0,1,1,.127.133A.128.128,0,0,1,252.194,96.963Zm-10.439.005a.126.126,0,1,1,.126.133A.13.13,0,0,1,241.755,96.969Zm-.344,0a.127.127,0,1,1,.126.133A.13.13,0,0,1,241.411,96.969Zm27.141-.157h.176v2.517h-.176Zm-18.306.023h.175v2.518h-.175Zm-.708,1.759V96.831h.176V98.6c0,.218-.007.752-.8.752h-2.831a.738.738,0,0,1-.7-.3c-.092.181-.294.337-.72.337s-.625-.154-.717-.337a.735.735,0,0,1-.7.3h-.525c-.2,0-.229-.153-.226-.364a.942.942,0,0,1-.816.4.962.962,0,1,1,.974-.944l0,.537c0,.137,0,.211.1.211h.492c.5,0,.617-.239.617-.6V97.518h.175v1.11c0,.357.134.6.628.6s.617-.238.617-.6v-1.11h.175v1.1c.005.342.131.57.618.57h.555v-2.36h.175v1.036a.784.784,0,0,1,.713-.382c.789,0,.789.534.789.754v.953h.6C249.42,99.19,249.539,98.951,249.539,98.594Zm-8.622-.152a.785.785,0,1,0,.766-.816A.77.77,0,0,0,240.917,98.442Zm7.225-.2c0-.359-.125-.6-.617-.6a.64.64,0,0,0-.71.649v.893h1.327Zm5.311.181v.552c0,.138,0,.211.1.211h1.007v-1c0-.219.007-.752.8-.752a1.473,1.473,0,0,1,.29.027l-.091.15a1.256,1.256,0,0,0-.192-.015c-.494,0-.628.239-.628.6v1h1.315v.162H253.52a.179.179,0,0,1-.189-.108A.74.74,0,0,1,253.3,99a.982.982,0,0,1-.815.384.961.961,0,1,1,.973-.959Zm-1.744.015a.786.786,0,1,0,.767-.816A.775.775,0,0,0,251.709,98.441Zm14.964.222c.019.319.154.528.614.528.483,0,.613-.242.613-.6v-1.8h.175V98.6c0,.216-.007.748-.789.752a.759.759,0,0,1-.679-.273.983.983,0,0,1-1.81,0,.764.764,0,0,1-.683.275h-2.089a.758.758,0,0,1-.682-.276.985.985,0,0,1-1.812,0,.758.758,0,0,1-.681.272h-.6c-.03.378-.217.747-.936.747-.529,0-.831-.165-.889-.61l.173-.015c.038.284.222.461.716.461.572,0,.721-.294.759-.583h-.721a.909.909,0,0,1-.981-.955.942.942,0,0,1,1.883.014v.778h.6c.437,0,.58-.18.609-.463.005-.054.008-.1.012-.139a.918.918,0,0,1,.962-.833.929.929,0,0,1,.967.932c.018.3.161.5.616.5h1.341V98.181c0-.357-.116-.6-.616-.6a.574.574,0,0,0-.516.195l-.153-.108a.791.791,0,0,1,.662-.249c.789,0,.8.534.8.752v1.012h.582c.461,0,.59-.2.614-.516a.971.971,0,0,1,1.936-.038Zm-8.592-.276a.7.7,0,0,0-.773-.75.712.712,0,0,0-.762.752.748.748,0,0,0,.828.8h.706Zm1.563.363a.795.795,0,0,0,1.588-.034c0-.024,0-.046,0-.066a.795.795,0,0,0-1.58-.042A.691.691,0,0,0,259.644,98.749Zm6.855-.024c0-.026,0-.043,0-.061a.794.794,0,0,0-1.586.031.794.794,0,1,0,1.589.03ZM245.28,99.841a.126.126,0,1,1,.126.133A.13.13,0,0,1,245.28,99.841Z" transform="translate(-208.166 -83.695)" fill="#5f6765"/>
|
||||
<path id="Path_22" data-name="Path 22" d="M11.934,8.762a.289.289,0,0,1-.291.285.294.294,0,0,1-.3-.285.285.285,0,0,1,.3-.273A.28.28,0,0,1,11.934,8.762ZM28.821,7.124V5.365a.236.236,0,0,1,.262-.216.233.233,0,0,1,.262.225V7.045c0,.7.024,1.184-.357,1.542a1.527,1.527,0,0,1-1.088.371,1.607,1.607,0,0,1-1.1-.382,1.389,1.389,0,0,1-.346-1.131V5.376a.237.237,0,0,1,.268-.229.239.239,0,0,1,.271.241V7.5a.962.962,0,0,0,.226.79,1.018,1.018,0,0,0,.7.235.951.951,0,0,0,.658-.229C28.844,8.043,28.821,7.757,28.821,7.124ZM2.416,8.762a.291.291,0,0,1-.292.285.3.3,0,0,1-.3-.285.286.286,0,0,1,.3-.273A.281.281,0,0,1,2.416,8.762Zm5.213,0a.291.291,0,0,1-.292.285.3.3,0,0,1-.3-.285.286.286,0,0,1,.3-.273A.281.281,0,0,1,7.63,8.762Zm.8,0a.29.29,0,0,1-.291.285.293.293,0,0,1-.3-.285.285.285,0,0,1,.3-.273A.281.281,0,0,1,8.431,8.762ZM14.682,5.35l.11-.054a1.876,1.876,0,0,1,.49-.137,2.478,2.478,0,0,1,.334-.023,1.814,1.814,0,0,1,1.831,1.975,2.5,2.5,0,0,1-.047.494h3.146a1.02,1.02,0,0,0,.7-.235.963.963,0,0,0,.227-.79V4.008A.271.271,0,0,1,22.014,4V6.523a1.388,1.388,0,0,1-.348,1.134,1.593,1.593,0,0,1-1.1.38H17.6l-4.858,0a1.482,1.482,0,0,1-.984-.367,1.263,1.263,0,0,1-.093-.1,1.3,1.3,0,0,1-.095.1,1.527,1.527,0,0,1-1.087.369h-1.6a1.6,1.6,0,0,1-1.066-.38c-.111-.053-.141-.02-.176.011a1.52,1.52,0,0,1-1.084.371H4.993a1.577,1.577,0,0,1-1.05-.382c-.11-.053-.141-.02-.175.011a1.47,1.47,0,0,1-.984.368l-1.335,0a1.6,1.6,0,0,1-1.1-.382A1.394,1.394,0,0,1,0,6.524V5.372a.24.24,0,0,1,.269-.23.237.237,0,0,1,.268.241v1.2a.96.96,0,0,0,.227.79,1.02,1.02,0,0,0,.7.235l1.317,0a.9.9,0,0,0,.572-.227A.843.843,0,0,0,3.6,6.721V5.369a.239.239,0,0,1,.268-.23.237.237,0,0,1,.268.241v1.2a.964.964,0,0,0,.226.79.973.973,0,0,0,.635.233l1.576,0a.93.93,0,0,0,.656-.23.861.861,0,0,0,.244-.686V5.37a.27.27,0,0,1,.536.011v1.2a.96.96,0,0,0,.227.79,1,1,0,0,0,.66.234H10.5a.936.936,0,0,0,.656-.229A.924.924,0,0,0,11.4,6.61c0-.149,0-.31,0-.484V5.368a.266.266,0,0,1,.524-.009v.847c0,.633-.024.919.246,1.172a.912.912,0,0,0,.571.227h4.132a2.086,2.086,0,0,0,.066-.537A1.359,1.359,0,0,0,15.586,5.58H15.5a2.189,2.189,0,0,0-.334.035c-.195.035-.165.03-.349.074C14.626,5.752,14.553,5.464,14.682,5.35ZM28.194,3.935a.288.288,0,0,1-.292.283.3.3,0,0,1-.3-.283.286.286,0,0,1,.3-.275A.282.282,0,0,1,28.194,3.935ZM41.723,8.762a.288.288,0,0,1-.29.285.3.3,0,0,1-.3-.285.287.287,0,0,1,.3-.273A.28.28,0,0,1,41.723,8.762Zm.8,0a.29.29,0,0,1-.291.285.294.294,0,0,1-.3-.285.285.285,0,0,1,.3-.273A.281.281,0,0,1,42.523,8.762Zm14.539-.728.009-.438h2.136c.832-.024,1.051-.368,1.066-.967-.031-.6-.234-1-1.066-1.03a2.436,2.436,0,0,0-.359.042,3.143,3.143,0,0,0-.348.074c-.192.06-.267-.227-.138-.341l.108-.053a1.877,1.877,0,0,1,.491-.138,2.527,2.527,0,0,1,.336-.022,1.333,1.333,0,0,1,1.473,1.449A1.314,1.314,0,0,1,59.3,8.034Zm-.373-.246a.29.29,0,0,1-.292.284.294.294,0,0,1-.3-.284.285.285,0,0,1,.3-.275A.281.281,0,0,1,56.688,7.788ZM54.841,6.125c0,.7.023,1.184-.36,1.544a1.522,1.522,0,0,1-1.084.369,1.6,1.6,0,0,1-1.1-.38l-.165.011a1.528,1.528,0,0,1-1.085.369,1.734,1.734,0,0,1-.909-.234v.231l-2.923,0a1.6,1.6,0,0,1-1.1-.38c-.11-.053-.139-.02-.172.011a1.531,1.531,0,0,1-1.087.369l-1.9,0a1.559,1.559,0,0,1-1.009-.379h-.157a1.6,1.6,0,0,1-1.1.38l-2.584,0a1.509,1.509,0,0,1-.348.551,1.52,1.52,0,0,1-1.084.371,1.6,1.6,0,0,1-1.1-.382,1.017,1.017,0,0,1-.3-.545l-3.153.008a1.6,1.6,0,0,1-1.1-.38,1.392,1.392,0,0,1-.346-1.134V4a.271.271,0,0,1,.537.011V6.58a.964.964,0,0,0,.226.79,1.023,1.023,0,0,0,.7.235l3.067,0,.027-.16V6.7a1.441,1.441,0,0,1,.345-1.174,1.6,1.6,0,0,1,1.1-.382,1.522,1.522,0,0,1,1.084.371,1.621,1.621,0,0,1,.359,1.308v.41c0,.129,0,.252-.005.367h2.561a1.019,1.019,0,0,0,.7-.235.827.827,0,0,0,.226-.658V5.377a.239.239,0,0,1,.268-.242.242.242,0,0,1,.271.23l0,.373,0,.783c0,.349-.008.626.227.847a.962.962,0,0,0,.593.231l1.915,0a.942.942,0,0,0,.655-.229c.268-.253.245-.539.245-1.172l-.011-.885V4a.271.271,0,0,1,.537.011V6.124c0,.173,0,.333,0,.482a.937.937,0,0,0,.234.764,1.018,1.018,0,0,0,.7.235H49.6V5.365a.23.23,0,0,1,.234-.214c.208.011.291.095.3.215V6.786a.775.775,0,0,0,.225.585,1.023,1.023,0,0,0,.7.235.944.944,0,0,0,.656-.229c.268-.253.244-.539.244-1.172v-.84a.266.266,0,0,1,.524.009V6.581a.96.96,0,0,0,.226.789,1.019,1.019,0,0,0,.7.235.941.941,0,0,0,.656-.229c.268-.253.244-.539.244-1.172v-.84a.238.238,0,0,1,.264-.216.235.235,0,0,1,.262.226v.751ZM37.342,8.3c.245-.231.245-.488.244-1.015V6.859c0-.576-.007-.828-.244-1.051a.941.941,0,0,0-.658-.23,1.013,1.013,0,0,0-.7.235.957.957,0,0,0-.226.79V7.5a.958.958,0,0,0,.226.79,1.013,1.013,0,0,0,.7.235A.934.934,0,0,0,37.342,8.3ZM23.324,8.034V4.006A.271.271,0,0,1,23.861,4V8.034Z" transform="translate(0 -3.166)" fill="#3d4543"/>
|
||||
<path id="Path_23" data-name="Path 23" d="M14.322,55.834V54.075a.266.266,0,0,1,.525.009v1.672c0,.7.022,1.183-.357,1.541a1.529,1.529,0,0,1-1.088.371,1.608,1.608,0,0,1-1.1-.383,1.391,1.391,0,0,1-.345-1.133V54.087a.271.271,0,0,1,.537.014V56.21a.961.961,0,0,0,.226.79,1.022,1.022,0,0,0,.7.235.941.941,0,0,0,.656-.23C14.346,56.753,14.322,56.467,14.322,55.834Zm1.437,1.76V54.087a.238.238,0,0,1,.268-.229.235.235,0,0,1,.267.215v3.094h1.652V57.6H15.759Zm6.514,0V54.07a.235.235,0,0,1,.235-.215c.208.011.291.095.3.215v.319l0,3.207h-.539Zm1.437,0,.394-3.469a.333.333,0,0,1,.368-.265.37.37,0,0,1,.344.235L25.9,56.91l1.05-2.82a.363.363,0,0,1,.319-.23.341.341,0,0,1,.388.264l.411,3.471h-.525l-.329-3.023-1.126,3.023h-.442l-1.151-3.023-.3,3.023Zm11.285-.751-.009-2.6v-.157a.244.244,0,0,1,.486-.012v3.523h-.533l-1.875-2.978.011,2.978h-.488V54.12c0-.225.2-.26.331-.26.172.007.229.08.352.257Zm6.478.751V54.075a.276.276,0,0,1,.537-.011v3.1h1.652v.428Zm4.314,0V54.06a.276.276,0,0,1,.537.011v1.353h1.824V54.071a.276.276,0,0,1,.537-.007v3.53h-.537V55.85H46.323v1.744Zm10.885,0V54.068a.24.24,0,0,1,.268-.214.238.238,0,0,1,.268.211v3.529ZM.264,53.868H.879a2.434,2.434,0,0,1,1.829.475,1.948,1.948,0,0,1,0,2.748,2.432,2.432,0,0,1-1.835.5H0V54.141A.242.242,0,0,1,.264,53.868Zm2.468,1.827a1.386,1.386,0,0,0-.424-1.073c-.346-.325-.741-.352-1.429-.352H.533v2.917h.5a1.752,1.752,0,0,0,1.3-.38A1.512,1.512,0,0,0,2.731,55.695ZM4.07,54.13c-.007-.183.107-.263.272-.263h.613a1.7,1.7,0,0,1,1.266.3.972.972,0,0,1,.31.743.876.876,0,0,1-.245.643,1.07,1.07,0,0,1-.639.295.576.576,0,0,1,.34.152,1.671,1.671,0,0,1,.31.52L6.811,57.6H6.248l-.459-.971C5.513,56.048,5.382,56,4.844,56h-.25v1.6H4.067V54.13ZM6,54.907a.618.618,0,0,0-.175-.447,1.1,1.1,0,0,0-.819-.2H4.595V55.6H4.78A1.462,1.462,0,0,0,5.8,55.377.651.651,0,0,0,6,54.907ZM18.25,57.594l1.229-3.184.126-.3a.357.357,0,0,1,.359-.252.367.367,0,0,1,.384.252l.149.356,1.219,3.127h-.563l-.361-.976H19.15l-.363.976Zm2.391-1.386-.674-1.821L19.3,56.209Zm7.9,1.386,1.229-3.184.124-.3a.36.36,0,0,1,.36-.252.367.367,0,0,1,.384.252l.15.356L32,57.594h-.559l-.365-.976H29.44l-.363.976Zm2.39-1.386-.671-1.821-.67,1.821Zm6.546,1.386L38.7,54.411l.124-.3a.358.358,0,0,1,.359-.252.365.365,0,0,1,.383.252l.15.356,1.216,3.127h-.56l-.361-.976h-1.64l-.365.976Zm2.391-1.386-.674-1.821-.667,1.821Zm9.348,1.386,1.227-3.184.126-.3a.357.357,0,0,1,.359-.252.37.37,0,0,1,.386.252l.147.356,1.218,3.127h-.559l-.365-.976H50.115l-.364.976Zm2.392-1.386-.677-1.821-.666,1.821Zm1.663,1.386V54.225c0-.267.068-.371.264-.371h.833a1.447,1.447,0,0,1,1.066.287.93.93,0,0,1,.311.718.8.8,0,0,1-.637.819.81.81,0,0,1,.763.835.986.986,0,0,1-.3.735c-.383.359-.884.348-1.6.348h-.7Zm1.938-2.725a.562.562,0,0,0-.154-.414,1.282,1.282,0,0,0-.919-.2h-.346v1.256h.306a1.443,1.443,0,0,0,.928-.208A.532.532,0,0,0,55.207,54.869Zm.119,1.653a.559.559,0,0,0-.18-.419,1.493,1.493,0,0,0-1.031-.208h-.329v1.289h.442a1.211,1.211,0,0,0,.925-.235A.616.616,0,0,0,55.327,56.523Zm2.845-2.668h1.1a1.448,1.448,0,0,1,1.066.287.936.936,0,0,1,.313.718.8.8,0,0,1-.639.819.809.809,0,0,1,.762.835.99.99,0,0,1-.3.735c-.384.359-.882.348-1.6.348h-.7V53.854Zm1.938,1.015a.572.572,0,0,0-.153-.414,1.275,1.275,0,0,0-.917-.2h-.348v1.256H59a1.455,1.455,0,0,0,.932-.208A.534.534,0,0,0,60.11,54.869Zm.122,1.653a.554.554,0,0,0-.18-.419,1.493,1.493,0,0,0-1.031-.208h-.329v1.289h.442c.467,0,.71-.034.924-.235A.611.611,0,0,0,60.231,56.523ZM8.772,54.791c0-.589.5-1,1.223-1.011a2.309,2.309,0,0,1,.855.181c.193.074.114.429-.1.36-.183-.043-.164-.043-.36-.083a1.294,1.294,0,0,0-.287-.032c-.484,0-.8.2-.8.537,0,.354.352.467.746.656.352.169,1.133.442,1.133,1.179,0,.617-.482,1.093-1.306,1.093a2.019,2.019,0,0,1-1.223-.4l.258-.346a1.8,1.8,0,0,0,.942.319c.49,0,.775-.275.775-.617,0-.41-.506-.61-.936-.808C9.19,55.588,8.772,55.34,8.772,54.791Z" transform="translate(0 -46.505)" fill="#3d4543"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 16 KiB |
@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48">
|
||||
<g id="lakum_icon" transform="translate(-116 -118)">
|
||||
<circle id="Ellipse_40" data-name="Ellipse 40" cx="24" cy="24" r="24" transform="translate(116 118)" fill="#5ab145"/>
|
||||
<g id="lakum_icon-2" data-name="lakum_icon" transform="translate(128 130)">
|
||||
<path id="Path_1290" data-name="Path 1290" d="M22.792,1.695H19.779q.016-.5.017-1.007A.688.688,0,0,0,19.108,0H4.372a.688.688,0,0,0-.688.688q0,.506.017,1.007H.688A.688.688,0,0,0,0,2.383a14.909,14.909,0,0,0,2.268,8.188A7.177,7.177,0,0,0,7.72,14.112a7.064,7.064,0,0,0,1.49,1.251V18.42H8.056a2.533,2.533,0,0,0-2.53,2.53V22.1H5.477a.688.688,0,0,0,0,1.376H18A.688.688,0,1,0,18,22.1h-.049V20.95a2.533,2.533,0,0,0-2.53-2.53H14.27V15.363a7.063,7.063,0,0,0,1.49-1.251,7.177,7.177,0,0,0,5.452-3.541A14.909,14.909,0,0,0,23.48,2.383.688.688,0,0,0,22.792,1.695ZM3.414,9.809A13.258,13.258,0,0,1,1.39,3.07H3.778a22.988,22.988,0,0,0,2.137,8.345q.275.55.574,1.04A6.634,6.634,0,0,1,3.414,9.809Zm16.653,0a6.634,6.634,0,0,1-3.075,2.647q.3-.49.574-1.04A22.992,22.992,0,0,0,19.7,3.07H22.09A13.258,13.258,0,0,1,20.066,9.809Zm0,0" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@ -0,0 +1,32 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="22.944" height="22.944" viewBox="0 0 22.944 22.944">
|
||||
<g id="medication_refill_icon" transform="translate(-293.302 -232.294)">
|
||||
<g id="pills_1_" data-name="pills (1)" transform="translate(298.551 236.387)">
|
||||
<g id="Group_915" data-name="Group 915" transform="translate(0 0)">
|
||||
<g id="Group_914" data-name="Group 914" transform="translate(0 0)">
|
||||
<path id="Path_1199" data-name="Path 1199" d="M14.048,1.856A2.493,2.493,0,0,0,11.638,0,2.514,2.514,0,0,0,9.465,1.249L7.888,3.981h0L6.31,6.713a2.5,2.5,0,0,0,4.212,2.694l.012-.019L13.8,3.752A2.48,2.48,0,0,0,14.048,1.856ZM10.109,9.129A2,2,0,0,1,6.742,6.963L8.195,4.446l.539.311h0l2.927,1.69ZM13.368,3.5,11.911,6.017,9.2,4.451l.7-1.207a.249.249,0,0,0-.432-.249L8.767,4.2l-.324-.187L9.9,1.5a2.014,2.014,0,0,1,1.742-1,2.005,2.005,0,0,1,1.729,3Z" transform="translate(-5.975 0)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_917" data-name="Group 917" transform="translate(5.76 8.273)">
|
||||
<g id="Group_916" data-name="Group 916">
|
||||
<path id="Path_1200" data-name="Path 1200" d="M242.743,332.271a9.6,9.6,0,0,0-4.519,0c-.723.206-1.09.5-1.091.864h0v2.215c0,.368.366.66,1.089.866a9.636,9.636,0,0,0,4.522,0c.723-.206,1.089-.5,1.089-.866v-2.213a.008.008,0,0,0,0,0C243.834,332.769,243.467,332.477,242.743,332.271Zm-4.382.479a9.122,9.122,0,0,1,4.245,0c.6.172.729.356.729.386h0c0,.03-.129.215-.729.386a9.121,9.121,0,0,1-4.245,0c-.6-.172-.729-.357-.729-.386S237.759,332.922,238.362,332.75Zm4.974,2.6c0,.036-.13.216-.728.387a9.154,9.154,0,0,1-4.248,0c-.6-.171-.727-.351-.727-.387v-1.578a3.067,3.067,0,0,0,.592.228,9.6,9.6,0,0,0,4.519,0,3.067,3.067,0,0,0,.592-.228v.622a5.227,5.227,0,0,1-1.3.417.249.249,0,0,0,.1.489,6.075,6.075,0,0,0,1.206-.358Z" transform="translate(-237.134 -332.001)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_919" data-name="Group 919" transform="translate(3.826 2.221)">
|
||||
<g id="Group_918" data-name="Group 918" transform="translate(0)">
|
||||
<path id="Path_1201" data-name="Path 1201" d="M159.9,89.178a.249.249,0,0,0-.34.091l0,.007a.249.249,0,1,0,.432.249l0-.007A.249.249,0,0,0,159.9,89.178Z" transform="translate(-159.52 -89.145)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_921" data-name="Group 921" transform="translate(9.706 11.187)">
|
||||
<g id="Group_920" data-name="Group 920">
|
||||
<path id="Path_1202" data-name="Path 1202" d="M395.99,449.18a.249.249,0,0,0-.273-.223h-.006a.249.249,0,0,0,.023.5h.032A.249.249,0,0,0,395.99,449.18Z" transform="translate(-395.486 -448.956)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="reload" transform="translate(293.302 232.294)">
|
||||
<path id="Path_1291" data-name="Path 1291" d="M.478,11.95A.478.478,0,0,1,0,11.472,11.485,11.485,0,0,1,11.472,0C16.037,0,19.8,2.724,22.364,7.877a.478.478,0,0,1-.855.426C19.843,4.951,16.75.956,11.472.956A10.528,10.528,0,0,0,.956,11.472a.478.478,0,0,1-.478.478Zm0,0"/>
|
||||
<path id="Path_1292" data-name="Path 1292" d="M409.634,90.97H405.81a.478.478,0,1,1,0-.956h3.346V86.708a.478.478,0,0,1,.956,0v3.784A.478.478,0,0,1,409.634,90.97Zm0,0" transform="translate(-387.168 -82.366)"/>
|
||||
<path id="Path_1293" data-name="Path 1293" d="M22.753,257.282c-4.565,0-8.332-2.724-10.893-7.877a.478.478,0,0,1,.855-.426c1.666,3.352,4.759,7.347,10.037,7.347A10.528,10.528,0,0,0,33.269,245.81a.478.478,0,1,1,.956,0A11.485,11.485,0,0,1,22.753,257.282Zm0,0" transform="translate(-11.281 -234.338)"/>
|
||||
<path id="Path_1294" data-name="Path 1294" d="M.478,324.74A.478.478,0,0,1,0,324.262v-3.784A.478.478,0,0,1,.478,320H4.3a.478.478,0,1,1,0,.956H.956v3.306a.477.477,0,0,1-.478.478Zm0,0" transform="translate(0 -305.66)"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 15 KiB |
@ -0,0 +1,19 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24.306" height="17.222" viewBox="0 0 24.306 17.222">
|
||||
<g id="my_family_icon" transform="translate(0 -74.611)">
|
||||
<g id="Group_22" data-name="Group 22" transform="translate(20.766 84.267)">
|
||||
<g id="Group_21" data-name="Group 21">
|
||||
<path id="Path_42" data-name="Path 42" d="M438.273,278.2a.477.477,0,0,0-.755.582,3.575,3.575,0,0,1,.749,2.2.477.477,0,1,0,.953,0A4.52,4.52,0,0,0,438.273,278.2Z" transform="translate(-437.419 -278.017)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_24" data-name="Group 24" transform="translate(0 74.611)">
|
||||
<g id="Group_23" data-name="Group 23" transform="translate(0 0)">
|
||||
<path id="Path_43" data-name="Path 43" d="M20.018,81.255a3.632,3.632,0,1,0-4.055,0,6.279,6.279,0,0,0-1.949,1.078,2.68,2.68,0,0,0-3.721,0,6.283,6.283,0,0,0-1.95-1.078,3.632,3.632,0,1,0-4.055,0A6.326,6.326,0,0,0,0,87.224s0,.008,0,.012c0,.732.416,1.812,2.4,2.8A18.256,18.256,0,0,0,8.006,91.57a32.792,32.792,0,0,0,8.295,0,18.254,18.254,0,0,0,5.609-1.532c1.981-.989,2.4-2.069,2.4-2.8A6.326,6.326,0,0,0,20.018,81.255Zm-4.706-3.012a2.679,2.679,0,1,1,2.679,2.678A2.682,2.682,0,0,1,15.312,78.243Zm-4.581,5.036a1.731,1.731,0,0,1,2.844,0h0a1.731,1.731,0,1,1-2.845,0ZM3.636,78.243a2.679,2.679,0,1,1,2.678,2.678A2.682,2.682,0,0,1,3.636,78.243ZM7.592,90.548a16.536,16.536,0,0,1-4.769-1.364c-1.2-.6-1.865-1.29-1.869-1.943,0,0,0,0,0-.006a5.361,5.361,0,0,1,8.779-4.131,2.683,2.683,0,0,0,.708,3.226A4.568,4.568,0,0,0,7.592,90.548Zm8.17.128a31.981,31.981,0,0,1-7.217,0v-.117a3.609,3.609,0,0,1,7.217,0Zm5.722-1.491a16.532,16.532,0,0,1-4.769,1.364,4.569,4.569,0,0,0-2.849-4.217,2.683,2.683,0,0,0,.708-3.226,5.362,5.362,0,0,1,8.779,4.131C23.353,87.891,22.689,88.583,21.484,89.185Z" transform="translate(0 -74.611)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_26" data-name="Group 26" transform="translate(19.731 83.333)">
|
||||
<g id="Group_25" data-name="Group 25" transform="translate(0 0)">
|
||||
<path id="Path_44" data-name="Path 44" d="M416.091,258.344a.477.477,0,0,0,0,.953A.477.477,0,0,0,416.091,258.344Z" transform="translate(-415.63 -258.344)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@ -0,0 +1,54 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="25.424" height="25.422" viewBox="0 0 25.424 25.422">
|
||||
<g id="my_prescription_icon" transform="translate(0 -0.015)">
|
||||
<g id="Group_932" data-name="Group 932" transform="translate(7.717 5.748)">
|
||||
<g id="Group_931" data-name="Group 931">
|
||||
<path id="Path_1207" data-name="Path 1207" d="M159.546,117.282h-1.319v-1.319a.5.5,0,1,0-.993,0v1.319h-1.319a.5.5,0,0,0,0,.993h1.319v1.319a.5.5,0,0,0,.993,0v-1.319h1.319a.5.5,0,0,0,0-.993Z" transform="translate(-155.418 -115.466)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_934" data-name="Group 934" transform="translate(5.66 3.691)">
|
||||
<g id="Group_933" data-name="Group 933">
|
||||
<path id="Path_1208" data-name="Path 1208" d="M118.361,74.042a4.369,4.369,0,1,0,4.369,4.369A4.374,4.374,0,0,0,118.361,74.042Zm0,7.746a3.376,3.376,0,1,1,3.376-3.376A3.38,3.38,0,0,1,118.361,81.788Z" transform="translate(-113.992 -74.042)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_936" data-name="Group 936" transform="translate(0 0.015)">
|
||||
<g id="Group_935" data-name="Group 935" transform="translate(0 0)">
|
||||
<path id="Path_1209" data-name="Path 1209" d="M19.914,4.58,15.5.16a.5.5,0,0,0-.351-.145H1.49A1.491,1.491,0,0,0,0,1.5V23.948a1.491,1.491,0,0,0,1.49,1.49h9.485a.5.5,0,1,0,0-.993H1.49a.5.5,0,0,1-.5-.5V1.5a.5.5,0,0,1,.5-.5H14.648v2.93a1.491,1.491,0,0,0,1.49,1.49h2.93v8.838a.5.5,0,1,0,.993,0V4.931A.5.5,0,0,0,19.914,4.58Zm-3.777-.145a.5.5,0,0,1-.5-.5V1.71l2.724,2.724H16.137Z" transform="translate(0 -0.015)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_938" data-name="Group 938" transform="translate(7.266 13.918)">
|
||||
<g id="Group_937" data-name="Group 937">
|
||||
<path id="Path_1210" data-name="Path 1210" d="M155.444,280H146.82a.5.5,0,1,0,0,.993h8.623a.5.5,0,1,0,0-.993Z" transform="translate(-146.324 -279.998)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_940" data-name="Group 940" transform="translate(3.178 13.918)">
|
||||
<g id="Group_939" data-name="Group 939">
|
||||
<path id="Path_1211" data-name="Path 1211" d="M66.11,280H64.493a.5.5,0,1,0,0,.993H66.11a.5.5,0,1,0,0-.993Z" transform="translate(-63.996 -279.998)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_942" data-name="Group 942" transform="translate(7.266 16.698)">
|
||||
<g id="Group_941" data-name="Group 941">
|
||||
<path id="Path_1212" data-name="Path 1212" d="M151.769,335.994H146.82a.5.5,0,0,0,0,.993h4.949a.5.5,0,0,0,0-.993Z" transform="translate(-146.324 -335.994)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_944" data-name="Group 944" transform="translate(3.178 16.698)">
|
||||
<g id="Group_943" data-name="Group 943">
|
||||
<path id="Path_1213" data-name="Path 1213" d="M66.11,335.994H64.493a.5.5,0,0,0,0,.993H66.11a.5.5,0,0,0,0-.993Z" transform="translate(-63.996 -335.994)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_946" data-name="Group 946" transform="translate(7.266 19.479)">
|
||||
<g id="Group_945" data-name="Group 945">
|
||||
<path id="Path_1214" data-name="Path 1214" d="M147.168,392.136a.5.5,0,1,0,.146.351A.5.5,0,0,0,147.168,392.136Z" transform="translate(-146.32 -391.991)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_948" data-name="Group 948" transform="translate(3.178 19.479)">
|
||||
<g id="Group_947" data-name="Group 947">
|
||||
<path id="Path_1215" data-name="Path 1215" d="M66.11,391.991H64.493a.5.5,0,0,0,0,.993H66.11a.5.5,0,0,0,0-.993Z" transform="translate(-63.996 -391.991)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_950" data-name="Group 950" transform="translate(11.957 15.348)">
|
||||
<g id="Group_949" data-name="Group 949">
|
||||
<path id="Path_1216" data-name="Path 1216" d="M251.19,312.733a3.078,3.078,0,0,0-.429.031,3.078,3.078,0,0,0-5.125-3.061l-3.932,3.932a3.078,3.078,0,0,0,4.354,4.354l2.057-2.057a3.078,3.078,0,1,0,3.075-3.2Zm-5.835,4.553a2.085,2.085,0,0,1-2.949-2.949l1.615-1.615,2.949,2.949Zm2.317-2.317-2.949-2.949,1.615-1.615a2.085,2.085,0,0,1,2.949,2.949Zm3.021,2.868a2.085,2.085,0,0,1,0-4.05Zm.993,0v-4.051a2.085,2.085,0,0,1,0,4.051Z" transform="translate(-240.802 -308.801)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48">
|
||||
<g id="orders_icon" transform="translate(-20 -118)">
|
||||
<circle id="Ellipse_32" data-name="Ellipse 32" cx="24" cy="24" r="24" transform="translate(20 118)" fill="#5ab145"/>
|
||||
<g id="orders_icon-2" data-name="orders_icon" transform="translate(12.463 127.957)">
|
||||
<path id="Path_1289" data-name="Path 1289" d="M44.461,6.574a.731.731,0,0,0-.071-.312.682.682,0,0,0-.477-.377L31.925.071a.711.711,0,0,0-.618,0L19.2,5.939a.709.709,0,0,0-.4.612V21.306a.7.7,0,0,0,.4.636l12.107,5.868c.006,0,.006,0,.012.006a.209.209,0,0,1,.053.024c.006,0,.012.006.024.006l.053.018c.006,0,.012.006.018.006s.041.006.059.012h.018c.024,0,.053.006.077.006a.336.336,0,0,0,.077-.006h.018a.209.209,0,0,0,.059-.012c.006,0,.012-.006.018-.006l.053-.018c.006,0,.012-.006.024-.006a.209.209,0,0,0,.053-.024c.006,0,.006,0,.012-.006l12.142-5.886a.712.712,0,0,0,.4-.636V6.592C44.461,6.586,44.461,6.58,44.461,6.574ZM31.613,1.489l10.5,5.091L38.246,8.458l-10.5-5.091Zm0,10.182L21.113,6.58l5.015-2.431,10.5,5.091Zm-11.4-3.955L30.907,12.9V26.044L20.213,20.859ZM32.319,26.044V12.9l5.02-2.437V13.9a.706.706,0,1,0,1.413,0V9.776l4.3-2.083V20.835Z" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="23.347" height="27.209" viewBox="0 0 23.347 27.209">
|
||||
<g id="our_locations_icon" transform="translate(-80 -16)">
|
||||
<path id="Path_1310" data-name="Path 1310" d="M205.9,49.814h-1.36v-1.36a.453.453,0,0,0-.453-.453h-1.814a.453.453,0,0,0-.453.453v1.36h-1.36a.453.453,0,0,0-.453.453v1.814a.453.453,0,0,0,.453.453h1.36V53.9a.453.453,0,0,0,.453.453h1.814a.453.453,0,0,0,.453-.453v-1.36h1.36a.453.453,0,0,0,.453-.453V50.267A.453.453,0,0,0,205.9,49.814Zm-.453,1.814h-1.36a.453.453,0,0,0-.453.453v1.36h-.907v-1.36a.453.453,0,0,0-.454-.453h-1.36v-.907h1.36a.453.453,0,0,0,.454-.453v-1.36h.907v1.36a.453.453,0,0,0,.453.453h1.36Z" transform="translate(-111.501 -30.186)"/>
|
||||
<path id="Path_1311" data-name="Path 1311" d="M82.122,43.209h19.1a.5.5,0,0,0,.531-.453V31.361a1.894,1.894,0,0,0,1.592-1.757V27.337a.418.418,0,0,0-.131-.3L99.5,23.411a.573.573,0,0,0-.4-.155H97.511v-6.8A.5.5,0,0,0,96.98,16H86.367a.5.5,0,0,0-.531.453v6.8H84.776a.58.58,0,0,0-.375.133l-4.245,3.628a.423.423,0,0,0-.155.321V29.6a1.894,1.894,0,0,0,1.592,1.757V42.756A.5.5,0,0,0,82.122,43.209Zm14.327-7.256V42.3H92.2V35.953Zm-10.612-.907v-.907H97.511v.907Zm5.306.907V42.3H86.9V35.953ZM97.511,42.3V35.953h.531a.5.5,0,0,0,.531-.453V33.686a.5.5,0,0,0-.531-.453H85.306a.5.5,0,0,0-.531.453V35.5a.5.5,0,0,0,.531.453h.531V42.3H82.653V31.361a2.207,2.207,0,0,0,1.061-.559,2.365,2.365,0,0,0,3.184,0,2.365,2.365,0,0,0,3.184,0,2.365,2.365,0,0,0,3.184,0,2.365,2.365,0,0,0,3.184,0,2.365,2.365,0,0,0,3.184,0,2.207,2.207,0,0,0,1.061.559V42.3ZM86.9,16.907h9.551V25.07H86.9ZM81.061,29.6v-2.08L85,24.163h.841v1.36a.5.5,0,0,0,.531.453H96.98a.5.5,0,0,0,.531-.453v-1.36h1.351l3.425,3.345v2.1a1.074,1.074,0,0,1-2.122,0V27.337H99.1V29.6a1.074,1.074,0,0,1-2.122,0V27.337H95.919V29.6a1.074,1.074,0,0,1-2.122,0V27.337H92.735V29.6a1.074,1.074,0,0,1-2.122,0V27.337H89.551V29.6a1.074,1.074,0,0,1-2.122,0V27.337H86.367V29.6a1.074,1.074,0,0,1-2.122,0V27.337H83.184V29.6a1.074,1.074,0,0,1-2.122,0Z" transform="translate(0)"/>
|
||||
<path id="Path_1312" data-name="Path 1312" d="M0,0H.907V1.283H0Z" transform="translate(94.117 36.727) rotate(-45)"/>
|
||||
<path id="Path_1313" data-name="Path 1313" d="M0,0H.907V2.565H0Z" transform="translate(92.607 38.087) rotate(-45)"/>
|
||||
<path id="Path_1314" data-name="Path 1314" d="M0,0H.907V1.283H0Z" transform="translate(88.747 36.727) rotate(-45)"/>
|
||||
<path id="Path_1315" data-name="Path 1315" d="M0,0H.907V2.565H0Z" transform="translate(87.193 38.087) rotate(-45)"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
@ -0,0 +1,49 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="23.228" height="27.884" viewBox="0 0 23.228 27.884">
|
||||
<g id="pill_reminder_icon" transform="translate(-42.75 0)">
|
||||
<g id="Group_1018" data-name="Group 1018" transform="translate(50.924 25.133)">
|
||||
<g id="Group_1017" data-name="Group 1017">
|
||||
<path id="Path_1295" data-name="Path 1295" d="M193.475,461.478h-.234a.408.408,0,1,0,0,.817h.234a.408.408,0,1,0,0-.817Z" transform="translate(-192.833 -461.478)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_1020" data-name="Group 1020" transform="translate(42.75 2.982)">
|
||||
<g id="Group_1019" data-name="Group 1019" transform="translate(0)">
|
||||
<path id="Path_1296" data-name="Path 1296" d="M59.74,63.609a.408.408,0,0,0-.408.408V74.961H48.042a.408.408,0,0,0,0,.817H59.306A3.465,3.465,0,0,1,55.87,78.83H47.028a3.465,3.465,0,0,1-3.436-3.052h2.784a.408.408,0,0,0,0-.817H43.567V59.43H55.241a.408.408,0,1,0,0-.817H43.592a3.465,3.465,0,0,1,3.436-3.052h6.2a.408.408,0,1,0,0-.817h-6.2a4.283,4.283,0,0,0-4.278,4.278V75.369a4.283,4.283,0,0,0,4.278,4.278H55.87a4.283,4.283,0,0,0,4.278-4.278V64.017A.408.408,0,0,0,59.74,63.609Z" transform="translate(-42.75 -54.744)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_1022" data-name="Group 1022" transform="translate(49.376 4.916)">
|
||||
<g id="Group_1021" data-name="Group 1021">
|
||||
<path id="Path_1297" data-name="Path 1297" d="M168.145,90.267h-3.33a.408.408,0,1,0,0,.817h3.33a.408.408,0,1,0,0-.817Z" transform="translate(-164.407 -90.267)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_1024" data-name="Group 1024" transform="translate(62.435 0.912)">
|
||||
<g id="Group_1023" data-name="Group 1023" transform="translate(0)">
|
||||
<path id="Path_1298" data-name="Path 1298" d="M404.863,16.826a.408.408,0,0,0-.51.638,3.266,3.266,0,0,1,1.233,2.562v.035a.408.408,0,1,0,.817,0v-.035A4.079,4.079,0,0,0,404.863,16.826Z" transform="translate(-404.199 -16.737)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_1026" data-name="Group 1026" transform="translate(63.27 0)">
|
||||
<g id="Group_1025" data-name="Group 1025" transform="translate(0 0)">
|
||||
<path id="Path_1299" data-name="Path 1299" d="M420.181.084a.408.408,0,0,0-.493.652A4.314,4.314,0,0,1,421.417,4.2v.367a.408.408,0,0,0,.817,0V4.2A5.124,5.124,0,0,0,420.181.084Z" transform="translate(-419.526 -0.001)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_1028" data-name="Group 1028" transform="translate(55.761 0.912)">
|
||||
<g id="Group_1027" data-name="Group 1027" transform="translate(0)">
|
||||
<path id="Path_1300" data-name="Path 1300" d="M283.771,16.889a.409.409,0,0,0-.574-.064,4.079,4.079,0,0,0-1.54,3.2v.035a.408.408,0,1,0,.817,0v-.035a3.267,3.267,0,0,1,1.233-2.562A.409.409,0,0,0,283.771,16.889Z" transform="translate(-281.657 -16.736)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_1030" data-name="Group 1030" transform="translate(54.422 0)">
|
||||
<g id="Group_1029" data-name="Group 1029" transform="translate(0 0)">
|
||||
<path id="Path_1301" data-name="Path 1301" d="M259.693.162a.409.409,0,0,0-.572-.079A5.124,5.124,0,0,0,257.068,4.2v.367a.408.408,0,1,0,.817,0V4.2A4.314,4.314,0,0,1,259.614.734.408.408,0,0,0,259.693.162Z" transform="translate(-257.068 0)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_1032" data-name="Group 1032" transform="translate(55.815 0.359)">
|
||||
<g id="Group_1031" data-name="Group 1031">
|
||||
<path id="Path_1302" data-name="Path 1302" d="M290.6,13.973a.532.532,0,0,1-.532-.532V10.466a3.074,3.074,0,0,0-2.631-3.044V7a.408.408,0,1,0-.817,0V7.42a3.039,3.039,0,0,0-2.631,3.012v3.009a.532.532,0,0,1-.532.532.815.815,0,0,0-.814.814v.449a.815.815,0,0,0,.814.814h2.07a1.658,1.658,0,0,0,3.214,0H290.6a.815.815,0,0,0,.814-.814v-.449A.815.815,0,0,0,290.6,13.973Zm-3.465,2.509a.842.842,0,0,1-.735-.433h1.47A.842.842,0,0,1,287.14,16.482Zm1.269-1.249H285.89l-.041,0h-2.383l0-.446a1.35,1.35,0,0,0,1.349-1.349V10.432a2.222,2.222,0,0,1,2.221-2.222h.027a2.247,2.247,0,0,1,2.2,2.256v2.975a1.344,1.344,0,0,0,1.339,1.345h.006l0,.446Z" transform="translate(-282.649 -6.59)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_1034" data-name="Group 1034" transform="translate(47.279 11.263)">
|
||||
<g id="Group_1033" data-name="Group 1033">
|
||||
<path id="Path_1303" data-name="Path 1303" d="M133.839,214.324h-.465l.029-.027a2.883,2.883,0,0,0,0-4.077l-2.575-2.575a2.883,2.883,0,1,0-4.077,4.077l1.287,1.287,1.287,1.287.029.027h-3.039a.408.408,0,1,0,0,.817h7.523a.408.408,0,1,0,0-.817Zm-6.51-3.18a2.066,2.066,0,1,1,2.922-2.922l1,1-2.922,2.922Zm4.035,3.179a2.052,2.052,0,0,1-1.461-.605l-1-1,2.922-2.922,1,1q.037.037.071.075a2.066,2.066,0,0,1-1.532,3.452Z" transform="translate(-125.907 -206.8)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.5 KiB |
@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="17.332" height="14.475" viewBox="0 0 17.332 14.475">
|
||||
<g id="quote_end" transform="translate(0 0)">
|
||||
<g id="Group_1206" data-name="Group 1206" transform="translate(0 0)">
|
||||
<path id="Path_1369" data-name="Path 1369" d="M2.945,14.418a4.592,4.592,0,0,1,1.269-.185,3.988,3.988,0,0,1,1.591.326c-.4-1.464-1.361-3.991-3.275-4.275a.455.455,0,0,1-.371-.327l-.418-1.5a.455.455,0,0,1,.376-.573,3.177,3.177,0,0,1,.428-.029c2.3,0,4.573,2.4,5.533,5.832.564,2.014.729,5.043-.659,6.949A4.145,4.145,0,0,1,4.05,22.332H4.032a4.032,4.032,0,0,1-1.087-7.915Z" transform="translate(8.84 -7.858)" fill="#ccc"/>
|
||||
<path id="Path_1370" data-name="Path 1370" d="M49.146,16.322a4.042,4.042,0,0,1,2.424-1.9,4.592,4.592,0,0,1,1.269-.185,3.989,3.989,0,0,1,1.591.326c-.4-1.464-1.361-3.991-3.275-4.275a.455.455,0,0,1-.371-.327l-.418-1.5a.455.455,0,0,1,.376-.573,3.173,3.173,0,0,1,.428-.029c2.3,0,4.573,2.4,5.533,5.832.563,2.014.729,5.043-.66,6.95a4.144,4.144,0,0,1-3.369,1.693h-.018a4.032,4.032,0,0,1-3.511-6.011Z" transform="translate(-48.626 -7.858)" fill="#ccc"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="17.332" height="14.475" viewBox="0 0 17.332 14.475">
|
||||
<g id="quote_start" transform="translate(0 -7.858)">
|
||||
<g id="Group_1206" data-name="Group 1206" transform="translate(0 7.858)">
|
||||
<path id="Path_1369" data-name="Path 1369" d="M5.548,14.418a4.592,4.592,0,0,0-1.269-.185,3.988,3.988,0,0,0-1.591.326c.4-1.464,1.361-3.991,3.275-4.275a.455.455,0,0,0,.371-.327l.418-1.5a.455.455,0,0,0-.376-.573,3.177,3.177,0,0,0-.428-.029c-2.3,0-4.573,2.4-5.533,5.832-.564,2.014-.729,5.043.659,6.949a4.145,4.145,0,0,0,3.369,1.693h.018a4.032,4.032,0,0,0,1.087-7.915Z" transform="translate(0 -7.858)" fill="#ccc"/>
|
||||
<path id="Path_1370" data-name="Path 1370" d="M56.6,16.322a4.042,4.042,0,0,0-2.424-1.9,4.592,4.592,0,0,0-1.269-.185,3.989,3.989,0,0,0-1.591.326c.4-1.464,1.361-3.991,3.275-4.275a.455.455,0,0,0,.371-.327l.418-1.5A.455.455,0,0,0,55,7.887a3.173,3.173,0,0,0-.428-.029c-2.3,0-4.573,2.4-5.533,5.832-.563,2.014-.729,5.043.66,6.95a4.144,4.144,0,0,0,3.369,1.693h.018A4.032,4.032,0,0,0,56.6,16.322Z" transform="translate(-39.786 -7.858)" fill="#ccc"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48">
|
||||
<g id="review_icon" transform="translate(-307 -118)">
|
||||
<circle id="Ellipse_42" data-name="Ellipse 42" cx="24" cy="24" r="24" transform="translate(307 118)" fill="#5ab145"/>
|
||||
<path id="review_icon-2" data-name="review_icon" d="M12.244.739,9.29,6.24l-6.609.885a1.3,1.3,0,0,0-.8,2.268l4.782,4.279L5.531,19.717a1.425,1.425,0,0,0,2.1,1.4l5.913-2.854,5.913,2.854a1.426,1.426,0,0,0,2.1-1.4l-1.131-6.045,4.782-4.279a1.3,1.3,0,0,0-.8-2.268L17.8,6.24,14.841.739A1.509,1.509,0,0,0,12.244.739Z" transform="translate(317.857 131.29)" fill="none" stroke="#fff" stroke-width="2"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 672 B |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20.174" height="24.435" viewBox="0 0 20.174 24.435">
|
||||
<g id="shipping_addresses_icon" transform="translate(-4 -1)">
|
||||
<path id="Path_1304" data-name="Path 1304" d="M23.674,11.087c0,7.457-9.587,13.848-9.587,13.848S4.5,18.544,4.5,11.087a9.587,9.587,0,1,1,19.174,0Z" transform="translate(0 0)" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
|
||||
<path id="Path_1305" data-name="Path 1305" d="M19.891,13.7a3.2,3.2,0,1,1-3.2-3.2,3.2,3.2,0,0,1,3.2,3.2Z" transform="translate(-2.609 -2.609)" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 685 B |
@ -0,0 +1,16 @@
|
||||
<svg id="shipping_mark_icon" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
|
||||
<g id="Group_1132" data-name="Group 1132" transform="translate(0 11.716)">
|
||||
<g id="Group_1130" data-name="Group 1130" transform="translate(0 0.839)">
|
||||
<path id="Path_1340" data-name="Path 1340" d="M9,362.56a19.9,19.9,0,0,1-6.161-.871C.493,360.892,0,359.87,0,359.154a2.508,2.508,0,0,1,1.535-1.974.527.527,0,0,1,.508.924c-.628.345-.988.728-.988,1.05,0,.394.558,1,2.124,1.536A18.83,18.83,0,0,0,9,361.505a18.83,18.83,0,0,0,5.821-.815c1.566-.532,2.124-1.142,2.124-1.536,0-.322-.36-.7-.988-1.05a.527.527,0,1,1,.508-.924A2.508,2.508,0,0,1,18,359.154c0,.716-.493,1.737-2.839,2.535A19.9,19.9,0,0,1,9,362.56Z" transform="translate(0 -357.115)" fill="#c9dff7"/>
|
||||
<path id="Path_1341" data-name="Path 1341" d="M263.461,357.181a.527.527,0,0,0-.508.924c.628.345.988.728.988,1.05,0,.394-.558,1-2.124,1.536a18.831,18.831,0,0,1-5.821.815h0v1.055h0a19.9,19.9,0,0,0,6.161-.871c2.347-.8,2.839-1.819,2.839-2.535A2.508,2.508,0,0,0,263.461,357.181Z" transform="translate(-246.996 -357.116)" fill="#aecef2"/>
|
||||
</g>
|
||||
<g id="Group_1131" data-name="Group 1131" transform="translate(3.045)">
|
||||
<path id="Path_1342" data-name="Path 1342" d="M92.565,337.362a15.281,15.281,0,0,1-3.981-.469c-1.31-.37-1.974-.906-1.974-1.592s.664-1.222,1.974-1.592a17.135,17.135,0,0,1,7.963,0c1.31.37,1.974.906,1.974,1.592s-.664,1.222-1.974,1.592A15.284,15.284,0,0,1,92.565,337.362ZM87.674,335.3a2.692,2.692,0,0,0,1.388.628,16.425,16.425,0,0,0,7.006,0,2.693,2.693,0,0,0,1.388-.628,2.693,2.693,0,0,0-1.388-.628,16.429,16.429,0,0,0-7.006,0A2.693,2.693,0,0,0,87.674,335.3Zm9.8.022h0Z" transform="translate(-86.61 -333.241)" fill="#c9dff7"/>
|
||||
<path id="Path_1343" data-name="Path 1343" d="M259.978,333.709A15.281,15.281,0,0,0,256,333.24h0v1.055h0a14.8,14.8,0,0,1,3.5.378,2.693,2.693,0,0,1,1.388.628,2.693,2.693,0,0,1-1.388.628,14.8,14.8,0,0,1-3.5.378h0v1.055h0a15.28,15.28,0,0,0,3.981-.469c1.31-.37,1.974-.906,1.974-1.592S261.287,334.079,259.978,333.709Z" transform="translate(-250.041 -333.24)" fill="#aecef2"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_1133" data-name="Group 1133" transform="translate(4.098)">
|
||||
<path id="Path_1344" data-name="Path 1344" d="M121.462,0a4.908,4.908,0,0,0-4.9,4.9c0,1.684,2.046,5.384,3.761,8.191a1.337,1.337,0,0,0,2.282,0c1.716-2.807,3.761-6.508,3.761-8.191A4.908,4.908,0,0,0,121.462,0Zm0,6.536a1.97,1.97,0,1,1,1.97-1.97A1.973,1.973,0,0,1,121.462,6.536Z" transform="translate(-116.56)" fill="#5ab145"/>
|
||||
<path id="Path_1345" data-name="Path 1345" d="M256,0h0V2.6h0a1.97,1.97,0,1,1,0,3.941h0v7.2h0a1.328,1.328,0,0,0,1.141-.64c1.716-2.807,3.761-6.508,3.761-8.191A4.908,4.908,0,0,0,256,0Z" transform="translate(-251.094 0)" fill="#3f9d28"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
@ -0,0 +1,34 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="23.894" height="17.733" viewBox="0 0 23.894 17.733">
|
||||
<g id="shipping_truck_icon" transform="translate(0 -66.008)">
|
||||
<g id="Group_1177" data-name="Group 1177" transform="translate(4.667 68.808)">
|
||||
<g id="Group_1176" data-name="Group 1176" transform="translate(0 0)">
|
||||
<path id="Path_1362" data-name="Path 1362" d="M100.462,126.006a.467.467,0,1,0,.467.467A.467.467,0,0,0,100.462,126.006Z" transform="translate(-99.995 -126.006)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_1179" data-name="Group 1179" transform="translate(0 66.008)">
|
||||
<g id="Group_1178" data-name="Group 1178">
|
||||
<path id="Path_1363" data-name="Path 1363" d="M21.977,72.8,21.3,71.449a1.392,1.392,0,0,0-1.252-.774h-3.9V67.408a1.4,1.4,0,0,0-1.4-1.4H1.4a1.4,1.4,0,0,0-1.4,1.4V79.541a1.4,1.4,0,0,0,1.4,1.4H2.8a2.789,2.789,0,0,0,.715,1.867H.467a.467.467,0,1,0,0,.933h22.96a.467.467,0,1,0,0-.933H22.245a2.788,2.788,0,0,0,.715-1.867c0-.027,0-.053,0-.08a1.4,1.4,0,0,0,.935-1.32v-2.58C23.893,76.417,24,76.925,21.977,72.8Zm-.706.675,1.4,2.8H18.013v-2.8ZM.933,77.208h.933v.933H.933Zm4.667,5.6a1.869,1.869,0,0,1-1.867-1.867,1.842,1.842,0,0,1,.038-.374,1.867,1.867,0,0,1,3.658,0v0a1.835,1.835,0,0,1,.037.372A1.869,1.869,0,0,1,5.6,82.808Zm0-4.667a2.81,2.81,0,0,0-2.64,1.867H1.4a.467.467,0,0,1-.467-.467v-.467h1.4a.467.467,0,0,0,.467-.467V76.741a.467.467,0,0,0-.467-.467H.933V67.408a.467.467,0,0,1,.467-.467H14.747a.467.467,0,0,1,.467.467v12.6H8.24A2.81,2.81,0,0,0,5.6,78.141Zm2.085,4.667A2.788,2.788,0,0,0,8.4,80.941h8.96a2.789,2.789,0,0,0,.715,1.867H7.685Zm12.475,0a1.869,1.869,0,0,1-1.867-1.867,1.842,1.842,0,0,1,.038-.374,1.867,1.867,0,0,1,3.658,0v0a1.835,1.835,0,0,1,.037.372A1.869,1.869,0,0,1,20.16,82.808Zm2.8-3.267a.466.466,0,0,1-.193.377,2.8,2.8,0,0,0-5.247.089H16.147v-8.4h3.9a.464.464,0,0,1,.417.258l.338.675H17.547a.467.467,0,0,0-.467.467v3.733a.467.467,0,0,0,.467.467H22.96Z" transform="translate(0 -66.008)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_1181" data-name="Group 1181" transform="translate(6.533 68.808)">
|
||||
<g id="Group_1180" data-name="Group 1180" transform="translate(0 0)">
|
||||
<path id="Path_1364" data-name="Path 1364" d="M146.341,126.006h-5.88a.467.467,0,0,0,0,.933h5.88a.467.467,0,1,0,0-.933Z" transform="translate(-139.994 -126.006)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_1183" data-name="Group 1183" transform="translate(8.4 70.675)">
|
||||
<g id="Group_1182" data-name="Group 1182" transform="translate(0 0)">
|
||||
<path id="Path_1365" data-name="Path 1365" d="M184.472,166h-4.013a.467.467,0,0,0,0,.933h4.013a.467.467,0,0,0,0-.933Z" transform="translate(-179.992 -166.004)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_1185" data-name="Group 1185" transform="translate(19.227 80.008)">
|
||||
<g id="Group_1184" data-name="Group 1184">
|
||||
<path id="Path_1366" data-name="Path 1366" d="M412.916,366a.933.933,0,1,0,.933.933A.934.934,0,0,0,412.916,366Z" transform="translate(-411.983 -365.996)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_1187" data-name="Group 1187" transform="translate(4.667 80.008)">
|
||||
<g id="Group_1186" data-name="Group 1186">
|
||||
<path id="Path_1367" data-name="Path 1367" d="M100.929,366a.933.933,0,1,0,.933.933A.934.934,0,0,0,100.929,366Z" transform="translate(-99.996 -365.996)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.2 KiB |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25">
|
||||
<g id="success_check_icon" transform="translate(-23 -242)">
|
||||
<circle id="Ellipse_49" data-name="Ellipse 49" cx="12.5" cy="12.5" r="12.5" transform="translate(23 242)" fill="#5ab145"/>
|
||||
<path id="check_1_" data-name="check (1)" d="M5.287,10.921a.7.7,0,0,1-1,0L.31,6.94a1.057,1.057,0,0,1,0-1.5l.5-.5a1.057,1.057,0,0,1,1.5,0L4.789,7.432,11.5.716a1.057,1.057,0,0,1,1.5,0l.5.5a1.057,1.057,0,0,1,0,1.5Zm0,0" transform="translate(28.658 248.714)" fill="#fff"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 560 B |
@ -0,0 +1,24 @@
|
||||
<svg id="success_review_icon" xmlns="http://www.w3.org/2000/svg" width="99.663" height="114.999" viewBox="0 0 99.663 114.999">
|
||||
<g id="_011---Approved-Cleaning" data-name="011---Approved-Cleaning" transform="translate(0 0)">
|
||||
<path id="Rectangle-path" d="M3,0H18a3,3,0,0,1,3,3V47a3,3,0,0,1-3,3H3a3,3,0,0,1-3-3V3A3,3,0,0,1,3,0Z" transform="translate(1.832 63.499)" fill="#e8ab22"/>
|
||||
<path id="Shape" d="M11.75,33H6a5.75,5.75,0,0,1,5.75,5.75V77.082A5.75,5.75,0,0,1,6,82.832h5.75a5.75,5.75,0,0,0,5.75-5.75V38.75A5.75,5.75,0,0,0,11.75,33Z" transform="translate(5.5 30.248)" fill="#c68d0e"/>
|
||||
<path id="Shape-2" data-name="Shape" d="M75.248,73.933H71.415a5.75,5.75,0,0,1,0,11.5H67.581a5.75,5.75,0,1,1,0,11.5h-34.5A23.054,23.054,0,0,1,24.5,95.418c-1.878-.747-3.527-1.955-5.347-2.837a14.34,14.34,0,0,0-6.191-1.4H12V52.85a20.379,20.379,0,0,0,11-3.239C29.92,45.2,40.4,37.192,38.142,27c-.767-3.431-1.054-6.785,2.607-8.644,4.063-2.07,7.954.556,9.851,3.872,6.382,11.174-4.772,28.711-4.772,28.711h27.5a5.75,5.75,0,0,1,0,11.5h1.917a5.75,5.75,0,1,1,0,11.5Z" transform="translate(10.999 16.147)" fill="#ffe0b2"/>
|
||||
<path id="Shape-3" data-name="Shape" d="M55.479,56.313A5.75,5.75,0,0,0,51.416,46.5H49.5a5.75,5.75,0,0,0,0-11.5H43.75a5.75,5.75,0,0,1,0,11.5h1.917a5.75,5.75,0,1,1,0,11.5H41.833a5.75,5.75,0,1,1,0,11.5H38A5.75,5.75,0,0,1,38,81h5.75a5.75,5.75,0,0,0,0-11.5h3.833a5.75,5.75,0,1,0,0-11.5h3.833A5.736,5.736,0,0,0,55.479,56.313Z" transform="translate(34.831 32.081)" fill="#dfc49c"/>
|
||||
<path id="Shape-4" data-name="Shape" d="M31.065,22.221c4.259,7.456.709,17.746-2.126,23.766a3.45,3.45,0,0,0,3.1,4.945S43.2,33.394,36.815,22.221c-1.884-3.295-5.736-5.9-9.775-3.906A9.744,9.744,0,0,1,31.065,22.221Z" transform="translate(24.785 16.15)" fill="#dfc49c"/>
|
||||
<path id="Shape-5" data-name="Shape" d="M64.535,20.166C47.267,20.166,47.267,1,47.267,1s0,19.166-17.267,19.166c17.267,0,17.267,19.166,17.267,19.166s0-19.166,17.269-19.166Z" transform="translate(27.498 0.917)" fill="#ffdc00"/>
|
||||
<path id="Shape-6" data-name="Shape" d="M29,26.416C17.5,26.416,17.5,13,17.5,13S17.5,26.416,6,26.416c11.5,0,11.5,13.416,11.5,13.416S17.5,26.416,29,26.416Z" transform="translate(5.5 11.916)" fill="#ffdc00"/>
|
||||
<g id="Group_1203" data-name="Group 1203">
|
||||
<path id="Shape-7" data-name="Shape" d="M93.913,69.11a7.641,7.641,0,0,0-3.768-6.564A7.576,7.576,0,0,0,92,57.61a7.666,7.666,0,0,0-7.666-7.666H60.12c3-5.708,8.445-18.466,3.143-27.747-2.333-4.077-7.206-7.266-12.383-4.629-5.4,2.745-4.192,8.167-3.609,10.769,1.485,6.677-3.323,13.608-14.294,20.584a18.591,18.591,0,0,1-8.37,2.821,7.653,7.653,0,0,0-7.358-5.633H7.666A7.666,7.666,0,0,0,0,53.777V92.109a7.666,7.666,0,0,0,7.666,7.666h9.583a7.666,7.666,0,0,0,7.383-5.711,12.521,12.521,0,0,1,4.7,1.184c.74.351,1.447.767,2.156,1.177a26.389,26.389,0,0,0,3.3,1.706,25.063,25.063,0,0,0,9.3,1.644h34.5a7.666,7.666,0,0,0,6.352-11.954,7.632,7.632,0,0,0,3.833-11.5,7.588,7.588,0,0,0,5.148-7.212ZM17.249,95.942H7.666a3.833,3.833,0,0,1-3.833-3.833V53.777a3.833,3.833,0,0,1,3.833-3.833h9.583a3.833,3.833,0,0,1,3.833,3.833V92.109A3.833,3.833,0,0,1,17.249,95.942ZM88.955,71.818a3.8,3.8,0,0,1-2.708,1.125H72.831a1.917,1.917,0,1,0,0,3.833h9.583a3.833,3.833,0,0,1,0,7.666H72.831a1.917,1.917,0,1,0,0,3.833h5.75a3.833,3.833,0,0,1,0,7.666h-34.5a21.18,21.18,0,0,1-7.858-1.365,22.94,22.94,0,0,1-2.815-1.468c-.8-.464-1.6-.924-2.428-1.321a16.389,16.389,0,0,0-6.064-1.533V55.6a22.463,22.463,0,0,0,10.118-3.45C47.511,44.211,52.887,35.918,51.012,27.5c-.866-3.877-.477-5.46,1.606-6.516,3.381-1.725,6.193,1.15,7.318,3.114,5.729,10.031-4.621,26.566-4.726,26.733a1.917,1.917,0,0,0,1.618,2.95h27.5a3.833,3.833,0,1,1,0,7.666h-11.5a1.917,1.917,0,1,0,0,3.833H86.247a3.833,3.833,0,0,1,2.708,6.541Z" transform="translate(0 15.221)"/>
|
||||
<path id="Shape-8" data-name="Shape" d="M48.183,0a1.917,1.917,0,0,0-1.917,1.861v.056c0,.705-.174,17.249-15.35,17.249a1.917,1.917,0,0,0,0,3.833c15.116,0,15.348,16.548,15.35,17.249A1.917,1.917,0,1,0,50.1,40.3v-.052C50.1,39.543,50.274,23,65.452,23a1.917,1.917,0,1,0,0-3.833C50.334,19.166,50.1,2.618,50.1,1.917A1.917,1.917,0,0,0,48.183,0Zm8.531,21.083a18.208,18.208,0,0,0-8.531,9.652,18.2,18.2,0,0,0-8.531-9.652,18.2,18.2,0,0,0,8.531-9.652A18.208,18.208,0,0,0,56.714,21.083Z" transform="translate(26.581 0)"/>
|
||||
<path id="Shape-9" data-name="Shape" d="M20.333,13.919v-.011a1.917,1.917,0,0,0-3.833.012c0,.47-.161,11.5-9.583,11.5a1.917,1.917,0,1,0,0,3.833c9.422,0,9.583,11.034,9.583,11.5v.012a1.917,1.917,0,1,0,3.833-.012c0-.47.161-11.5,9.583-11.5a1.917,1.917,0,1,0,0-3.833C20.494,25.419,20.333,14.385,20.333,13.919Zm2.576,13.416a12.881,12.881,0,0,0-4.493,5.2,12.881,12.881,0,0,0-4.493-5.2,12.87,12.87,0,0,0,4.493-5.2A12.87,12.87,0,0,0,22.909,27.336Z" transform="translate(4.583 10.996)"/>
|
||||
<path id="Shape-10" data-name="Shape" d="M49.833,22.917a1.917,1.917,0,1,0-3.833,0V26.75a1.917,1.917,0,1,0,3.833,0Z" transform="translate(42.164 19.249)"/>
|
||||
<path id="Shape-11" data-name="Shape" d="M47.917,34.666a1.917,1.917,0,0,0,1.917-1.917V28.917a1.917,1.917,0,1,0-3.833,0V32.75A1.917,1.917,0,0,0,47.917,34.666Z" transform="translate(42.164 24.748)"/>
|
||||
<path id="Shape-12" data-name="Shape" d="M53.75,28.833a1.917,1.917,0,1,0,0-3.833H49.917a1.917,1.917,0,0,0,0,3.833Z" transform="translate(43.997 22.915)"/>
|
||||
<path id="Shape-13" data-name="Shape" d="M47.75,25H43.917a1.917,1.917,0,1,0,0,3.833H47.75a1.917,1.917,0,1,0,0-3.833Z" transform="translate(38.497 22.915)"/>
|
||||
<path id="Shape-14" data-name="Shape" d="M22.073,10.783l2.875,2.875a1.917,1.917,0,0,0,2.71-2.71L24.783,8.073a1.917,1.917,0,1,0-2.71,2.71Z" transform="translate(19.696 6.863)"/>
|
||||
<path id="Shape-15" data-name="Shape" d="M20.425,9.135a1.917,1.917,0,0,0,2.71-2.71L20.26,3.55a1.917,1.917,0,0,0-2.71,2.71Z" transform="translate(15.593 2.761)"/>
|
||||
<path id="Shape-16" data-name="Shape" d="M17.561,13.658a1.917,1.917,0,0,0,2.71,0l2.875-2.875a1.917,1.917,0,1,0-2.71-2.71l-2.875,2.875a1.917,1.917,0,0,0,0,2.71Z" transform="translate(15.582 6.863)"/>
|
||||
<path id="Shape-17" data-name="Shape" d="M23.416,9.719a1.917,1.917,0,0,0,1.355-.562l2.875-2.875a1.917,1.917,0,1,0-2.71-2.71L22.061,6.448a1.917,1.917,0,0,0,1.355,3.272Z" transform="translate(19.707 2.739)"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 1.7 KiB |