diff --git a/LIBCWTCH-GO.version b/LIBCWTCH-GO.version index 7b09870..bfb76fd 100644 --- a/LIBCWTCH-GO.version +++ b/LIBCWTCH-GO.version @@ -1 +1 @@ -v0.0.2-66-g39187a7-2021-06-15-00-32 \ No newline at end of file +v0.0.2-75-g854dc19-2021-06-16-21-56sta \ No newline at end of file diff --git a/SPEC.md b/SPEC.md index 6a9b055..5d35586 100644 --- a/SPEC.md +++ b/SPEC.md @@ -8,7 +8,7 @@ required - any new Cwtch work is beyond the scope of this initial spec. # Functional Requirements - [ ] Kill all processes / isolates on exit (Blocked - P1) -- [ ] Android Service? (P1) +- [X] Android Service? (P1) # Splash Screen - [X] Android @@ -16,9 +16,9 @@ required - any new Cwtch work is beyond the scope of this initial spec. - [ ] Desktop (P2) # Custom Styled Widgets -- [/] Label Widget +- [X] Label Widget - [X] Initial - - [ ] With Accessibility / Zoom Integration (P1) + - [X] With Accessibility / Zoom Integration (P1) - [X] Text Field Widget - [X] Password Widget - [X] Text Button Widget (for Copy) @@ -33,10 +33,10 @@ required - any new Cwtch work is beyond the scope of this initial spec. - [X] Profile Picture - [X] default images - [ ] custom images (P3) - - [ ] coloured ring border (P2) + - [X] coloured ring border (P2) - [X] Profile Name - [X] Edit Button - - [ ] Unread messages badge (P2) + - [X Unread messages badge (P2) - [X] Navigate to a specific Profile Contacts Pane (when clicking on a Profile row) - [X] Navigate to a specific Profile Management Pane (edit Button) - [X] Navigate to the Settings Pane (Settings Button in Action bar) @@ -54,12 +54,12 @@ required - any new Cwtch work is beyond the scope of this initial spec. - [X] Update Profile Name - [X] Update Profile Password -- [ ] Error Message When Attempting to Update Password with Wrong Old Password (P2) +- [X] Error Message When Attempting to Update Password with Wrong Old Password (P2) - [ ] Easy Transition from Unencrypted Profile -> Encrypted Profile (P3) -- [ ] Delete a Profile (P2) - - [ ] Dialog Acknowledgement (P2) - - [ ] Require Old Password Gate (P2) - - [ ] Async Checking of Password (P2) +- [X] Delete a Profile (P2) + - [X] Dialog Acknowledgement (P2) + - [X] Require Old Password Gate (P2) + - [X] Async Checking of Password (P2) - [X] Copy Profile Onion Address ## Profile Pane (formally Contacts Pane) @@ -76,11 +76,11 @@ required - any new Cwtch work is beyond the scope of this initial spec. - [X] Name - [X] Onion - [X] Online Status - - [ ] Unread Messages Badge (P1) - - [ ] In Order of Most Recent Message / Activity (P1) - - [ ] With Accept / Reject Heart/Trash Bin Option (P1) - - [ ] Separate list area for Blocked Contacts (P1) -- [ ] Display all Group Contacts (if experiment is enabled) + - [X] Unread Messages Badge (P1) + - [X] In Order of Most Recent Message / Activity (P1) + - [X] With Accept / Reject Heart/Trash Bin Option (P1) + - [X] Separate list area for Blocked Contacts (P1) +- [X] Display all Group Contacts (if experiment is enabled) - [X] Navigate to a specific Contact or Group Message Pane (Contact Row) - [X] Pressing Back should go back to the home pane @@ -88,22 +88,22 @@ required - any new Cwtch work is beyond the scope of this initial spec. - [X] Allowing Copying the Profile Onion Address for Sharing - [X] Allowing Pasting a Peer Onion Address for adding to Contacts - [ ] (with optional name field) -- [ ] Allowing Pasting a Group Invite / Server Address +- [X] Allowing Pasting a Group Invite / Server Address - [X] (if group experiment is enabled) ## Message Overlay - [X] Display Messages from Contacts -- [ ] Allowing copying the text of a specific message (on mobile) (P2) +- [X] Allowing copying the text of a specific message (on mobile) (P2) - [X] Send a message to the specific Contact / Group - [~] Display the Acknowledgement status of a message (P1) -- [ ] Navigate to the specific Contact or Group Settings Pane ( Settings Button in Action bar) +- [X] Navigate to the specific Contact or Group Settings Pane ( Settings Button in Action bar) - [ ] Emoji Support (P1) - [ ] Display in-message emoji text labels e.g. `:label:` as emoji. (P1) - [ ] Functional Emoji Drawer Widget for Selection (P2) - [ ] Mutant Standard? (P2) -- [ ] Display a warning if Contact / Server is offline (Broken Heart) (P1) -- [ ] Display a warning for configuring peer history (P2) +- [X] Display a warning if Contact / Server is offline (Broken Heart) (P1) +- [X] Display a warning for configuring peer history (P2) - [X] Pressing Back should go back to the contacts pane ## List Overlay (P3) @@ -123,11 +123,11 @@ required - any new Cwtch work is beyond the scope of this initial spec. - [X] Pressing Back should go back to the message pane ## Group Settings Pane (experimental - P3) -- [ ] Gated behind group experiment -- [ ] Update local name of group -- [ ] Get Group Invite -- [ ] Leave Group -- [ ] Pressing Back should go back to the message pane for the group +- [X] Gated behind group experiment +- [X] Update local name of group +- [X] Get Group Invite +- [X] Leave Group +- [X] Pressing Back should go back to the message pane for the group diff --git a/android/app/src/main/kotlin/im/cwtch/flwtch/FlwtchWorker.kt b/android/app/src/main/kotlin/im/cwtch/flwtch/FlwtchWorker.kt index 6cb1e17..bb740d0 100644 --- a/android/app/src/main/kotlin/im/cwtch/flwtch/FlwtchWorker.kt +++ b/android/app/src/main/kotlin/im/cwtch/flwtch/FlwtchWorker.kt @@ -53,7 +53,6 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) : val torPath = (a.get("torPath") as? String) ?: "tor" Log.i("FlwtchWorker.kt", "appDir: '$appDir' torPath: '$torPath'") - //todo: maybe change this back to toByte after lcg gets merged? not sure why it got changed if (Cwtch.startCwtch(appDir, torPath) != 0.toLong()) return Result.failure() // infinite coroutine :) @@ -62,13 +61,13 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) : if (evt.EventType == "NewMessageFromPeer" || evt.EventType == "NewMessageFromGroup") { val data = JSONObject(evt.Data) val channelId = - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - createMessageNotificationChannel(data.getString("RemotePeer"), data.getString("RemotePeer")) - } else { - // If earlier version channel ID is not used - // https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html#NotificationCompat.Builder(android.content.Context) - "" - } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + createMessageNotificationChannel(data.getString("RemotePeer"), data.getString("RemotePeer")) + } else { + // If earlier version channel ID is not used + // https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html#NotificationCompat.Builder(android.content.Context) + "" + } val loader = FlutterInjector.instance().flutterLoader() val key = loader.getLookupKeyForAsset("assets/"+data.getString("Picture"))//"assets/profiles/001-centaur.png") @@ -82,13 +81,13 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) : } val newNotification = NotificationCompat.Builder(applicationContext, channelId) - .setContentTitle(data.getString("Nick")) - .setContentText("New message")//todo: translate - .setLargeIcon(BitmapFactory.decodeStream(fh)) - .setSmallIcon(R.mipmap.knott) - .setContentIntent(PendingIntent.getActivity(applicationContext, 1, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT)) - .setAutoCancel(true) - .build() + .setContentTitle(data.getString("Nick")) + .setContentText("New message")//todo: translate + .setLargeIcon(BitmapFactory.decodeStream(fh)) + .setSmallIcon(R.mipmap.knott) + .setContentIntent(PendingIntent.getActivity(applicationContext, 1, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT)) + .setAutoCancel(true) + .build() notificationManager.notify(getNotificationID(data.getString("ProfileOnion"), data.getString("RemotePeer")), newNotification) } @@ -104,11 +103,6 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) : "ReconnectCwtchForeground" -> { Cwtch.reconnectCwtchForeground() } - "SelectProfile" -> { - //val onion = (a.get("profile") as? String) ?: "" - //todo: maybe remove or readd after lcg merge? not sure why - //Cwtch.selectProfile(onion) - } "CreateProfile" -> { val nick = (a.get("nick") as? String) ?: "" val pass = (a.get("pass") as? String) ?: "" @@ -119,8 +113,6 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) : Cwtch.loadProfiles(pass) } "GetProfiles" -> Result.success(Data.Builder().putString("result", Cwtch.getProfiles()).build()) - // "ACNEvents" -> result.success(Cwtch.acnEvents()) - "ContactEvents" -> Result.success(Data.Builder().putString("result", Cwtch.contactEvents()).build()) "NumMessages" -> { val profile = (a.get("profile") as? String) ?: "" val handle = (a.get("contact") as? String) ?: "" @@ -224,6 +216,10 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) : val groupHandle = (a.get("groupHandle") as? String) ?: "" Cwtch.rejectInvite(profile, groupHandle) } + "Shutdown" -> { + Cwtch.shutdownCwtch(); + return Result.success() + } else -> return Result.failure() } return Result.success() diff --git a/android/app/src/main/res/layout/splash_view.xml b/android/app/src/main/res/layout/splash_view.xml index 85c2362..42a64e5 100644 --- a/android/app/src/main/res/layout/splash_view.xml +++ b/android/app/src/main/res/layout/splash_view.xml @@ -11,7 +11,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:lottie_autoPlay="true" - app:lottie_rawRes="@raw/cwtch_animated_logo" + app:lottie_rawRes="@raw/cwtch_animated_logo_op" app:lottie_loop="true" app:lottie_speed="1.00" /> diff --git a/android/app/src/main/res/raw/cwtch_animated_logo.json b/android/app/src/main/res/raw/cwtch_animated_logo.json deleted file mode 100644 index b556344..0000000 --- a/android/app/src/main/res/raw/cwtch_animated_logo.json +++ /dev/null @@ -1 +0,0 @@ -{"v":"5.7.4","fr":29.9700012207031,"ip":0,"op":168.00000684278,"w":510,"h":510,"nm":"Comp 1","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-45,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13,"s":[130.813,36.688,0],"to":[15.854,16.521,0],"ti":[-15.854,-16.521,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":17,"s":[225.938,135.813,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":187,"s":[225.938,135.813,0],"to":[-15.854,-16.521,0],"ti":[15.854,16.521,0]},{"t":191.000007779589,"s":[130.813,36.688,0]}],"ix":2,"l":2},"a":{"a":0,"k":[43.563,-24.563,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44.125,137.125],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.485674749636,0.949019607843,0.850899430817,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.563,-24.563],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":13.0000005295009,"op":216.00000879786,"st":13.0000005295009,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Gradient Fill_1","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[163.5,145,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[25.75,-64.625],[6.5,-47.625],[99.25,45.75],[121.125,29.375]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.411,0.392,0.192,0.486,0.706,0.229,0.127,0.273,1,0.067,0.063,0.059],"ix":9}},"s":{"a":0,"k":[0,0],"ix":5},"e":{"a":0,"k":[100,0],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":13.0000005295009,"op":223.000009082976,"st":13.0000005295009,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[163.5,145,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[84.25,32.25],[84.625,30.75],[84.5,31.625],[84.75,29.75],[84.75,30.625],[83.625,29.25],[84.625,31.25],[85,30.375],[98.25,17],[71,-3.25],[61.25,8.125],[61.875,9],[60.875,7.5],[61,8.625],[60.375,9.375],[61.125,9.25],[84.5,30.25],[85.375,30.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5.889,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[57.25,59.5],[57.625,58],[57.5,58.875],[57.75,57],[57.75,57.875],[56.625,56.5],[57.625,58.5],[58,57.625],[98.25,17],[71,-3.25],[36.125,32.25],[36.75,33.125],[35.75,31.625],[35.875,32.75],[35.25,33.5],[36,33.375],[57.5,57.5],[58.375,58.125]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6.778,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[20.125,98.125],[20.5,96.625],[20.375,97.5],[20.625,95.625],[20.625,96.5],[19.5,95.125],[20.5,97.125],[36.5,82.75],[98.25,17],[71,-3.25],[-0.375,68.5],[0.25,69.375],[-0.75,67.875],[-0.625,69],[-1.25,69.75],[-0.5,69.625],[20.375,96.125],[21.25,96.75]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.668,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-21,97.25],[-20.625,95.75],[-20.75,96.625],[-20.5,94.75],[-20.5,95.625],[-21.625,94.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-0.375,68.5],[0.25,69.375],[-0.75,67.875],[-0.625,69],[-1.25,69.75],[-0.5,69.625],[-20.75,95.25],[-19.875,95.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8.556,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-61.375,66.25],[-61,64.75],[-61.125,65.625],[-60.875,63.75],[-60.875,64.625],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-33.75,37],[-34.75,35.5],[-34.625,36.625],[-35.25,37.375],[-34.5,37.25],[-61.125,64.25],[-60.25,64.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.444,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-92.875,31.25],[-92.5,29.75],[-92.625,30.625],[-92.375,28.75],[-92.375,29.625],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-62.75,4.5],[-62.625,5.625],[-63.25,6.375],[-62.5,6.25],[-92.625,29.25],[-91.75,29.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.333,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-118.75,-72.875],[-118.375,-74.375],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-82.875,-57],[-82.125,-57.125],[-118.5,-74.875],[-117.625,-74.25]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.223,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-19,17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[19,-17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-72,-116.5],[-98.5,-99.25],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-69.25,-71.375],[-63.75,-71.25],[-62.875,-116.875],[-67.375,-116.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.111,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-19,17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[19,-17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-72,-116.5],[-98.5,-99.25],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-69.25,-71.375],[-63.75,-71.25],[-62.875,-116.875],[-67.375,-116.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":13,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-19,17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[19,-17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-72,-116.5],[-98.5,-99.25],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-62.75,-75.5],[-32.75,-65.75],[0.25,-99.25],[-36.75,-115.25]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":191.223,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-19,17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[19,-17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-72,-116.5],[-98.5,-99.25],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-62.75,-75.5],[-32.75,-65.75],[0.25,-99.25],[-36.75,-115.25]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":192.111,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-19,17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[19,-17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-72,-116.5],[-98.5,-99.25],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-69.25,-71.375],[-63.75,-71.25],[-62.875,-116.875],[-67.375,-116.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":193,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-19,17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[19,-17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-72,-116.5],[-98.5,-99.25],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-69.25,-71.375],[-63.75,-71.25],[-62.875,-116.875],[-67.375,-116.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":193.89,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-118.75,-72.875],[-118.375,-74.375],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-82.875,-57],[-82.125,-57.125],[-118.5,-74.875],[-117.625,-74.25]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":194.779,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-92.875,31.25],[-92.5,29.75],[-92.625,30.625],[-92.375,28.75],[-92.375,29.625],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-62.75,4.5],[-62.625,5.625],[-63.25,6.375],[-62.5,6.25],[-92.625,29.25],[-91.75,29.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":195.666,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-61.375,66.25],[-61,64.75],[-61.125,65.625],[-60.875,63.75],[-60.875,64.625],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-33.75,37],[-34.75,35.5],[-34.625,36.625],[-35.25,37.375],[-34.5,37.25],[-61.125,64.25],[-60.25,64.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":196.555,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-21,97.25],[-20.625,95.75],[-20.75,96.625],[-20.5,94.75],[-20.5,95.625],[-21.625,94.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-0.375,68.5],[0.25,69.375],[-0.75,67.875],[-0.625,69],[-1.25,69.75],[-0.5,69.625],[-20.75,95.25],[-19.875,95.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":197.445,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[20.125,98.125],[20.5,96.625],[20.375,97.5],[20.625,95.625],[20.625,96.5],[19.5,95.125],[20.5,97.125],[36.5,82.75],[98.25,17],[71,-3.25],[-0.375,68.5],[0.25,69.375],[-0.75,67.875],[-0.625,69],[-1.25,69.75],[-0.5,69.625],[20.375,96.125],[21.25,96.75]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":198.334,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[57.25,59.5],[57.625,58],[57.5,58.875],[57.75,57],[57.75,57.875],[56.625,56.5],[57.625,58.5],[58,57.625],[98.25,17],[71,-3.25],[36.125,32.25],[36.75,33.125],[35.75,31.625],[35.875,32.75],[35.25,33.5],[36,33.375],[57.5,57.5],[58.375,58.125]],"c":true}]},{"t":199.222508114499,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[84.25,32.25],[84.625,30.75],[84.5,31.625],[84.75,29.75],[84.75,30.625],[83.625,29.25],[84.625,31.25],[85,30.375],[98.25,17],[71,-3.25],[61.25,8.125],[61.875,9],[60.875,7.5],[61,8.625],[60.375,9.375],[61.125,9.25],[84.5,30.25],[85.375,30.875]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.485674749636,0.949019607843,0.850899430817,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5.00000020365417,"op":215.00000875713,"st":5.00000020365417,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Gradient Fill_2","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[144.5,143.75,0],"ix":2,"l":2},"a":{"a":0,"k":[97,108.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[15.32,-15.32],[-22.18,-37.58],[-8.27,-9.9],[-34.38,-27.34],[-15.84,15.83],[-5.9,6.87],[0,0],[7.34,-7.34],[13.62,-11.5],[0,0],[0,0],[14.29,17.55],[4.55,9.42],[0.38,6.48],[-2.45,5.95],[-6.41,6.41],[-5.83,2.09],[-8.02,-1.44],[0,0],[-4.58,-2.6],[0,0],[11.46,2.33]],"o":[[-28.01,28.01],[5.34,9.04],[18.86,22.58],[22.52,-17.91],[7.26,-7.26],[0,0],[-5.78,6.83],[-10.39,10.39],[0,0],[0,0],[-24.91,-21.03],[-9.08,-11.14],[-3.92,-8.14],[-0.19,-3.16],[2.4,-5.84],[2.39,-2.39],[6.02,-2.16],[0,0],[3.49,0.72],[0,0],[-5.51,-2.83],[-23.38,-4.74]],"v":[[-73.323,-90.495],[-81.753,4.345],[-61.243,32.885],[18.987,108.105],[76.777,57.275],[96.587,36.005],[77.827,17.245],[58.077,38.565],[21.887,71.555],[18.987,73.995],[16.097,71.555],[-42.993,13.415],[-63.523,-17.565],[-70.013,-39.595],[-67.713,-53.595],[-54.623,-71.795],[-42.543,-79.705],[-21.673,-80.775],[-21.563,-80.755],[-9.533,-75.805],[11.627,-96.965],[-14.993,-106.435]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.39199999641,0.19199999641,0.486000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[96.587,108.105],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5.00000020365417,"op":215.00000875713,"st":5.00000020365417,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"new curve 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[163.5,145,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.5,4],[0,0],[-31,-24.75],[1.25,-1.5]],"o":[[5.5,-4],[0,0],[44.579,35.591],[-1.25,1.5]],"v":[[-65.5,-9.5],[10.75,-84],[79.5,-86.25],[93.5,-13.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":26,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0,0,0,0.092,0.196,0.096,0.243,0.64,0.392,0.192,0.486],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":13},"bm":0,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":5,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":199,"s":[0]},{"t":206.000008390552,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":5,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":199,"s":[100]},{"t":206.000008390552,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":210.000008553475,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"new curve","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[163.5,145,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.5,4],[0,0],[-31,-24.75],[1.25,-1.5]],"o":[[5.5,-4],[0,0],[44.579,35.591],[-1.25,1.5]],"v":[[-65.5,-9.5],[10.75,-84],[79.5,-86.25],[93.5,-13.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.392156892664,0.192156877705,0.486274539723,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":26,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":5,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":199,"s":[0]},{"t":206.000008390552,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":5,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":199,"s":[100]},{"t":206.000008390552,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":210.000008553475,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"heart1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":270,"ix":10},"p":{"a":0,"k":[119.75,254.25,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":81.0000032991976,"op":107.000004358199,"st":-103.000004195276,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"heart1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":270,"ix":10},"p":{"a":0,"k":[119.75,254.25,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":54.0000021994651,"op":81.0000032991976,"st":54.0000021994651,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"heart1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":180,"ix":10},"p":{"a":0,"k":[252.75,388.75,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":103.000004195276,"op":127.000005172816,"st":-83.0000033806593,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"heart1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":180,"ix":10},"p":{"a":0,"k":[252.75,388.75,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":35.0000014255792,"op":103.000004195276,"st":35.0000014255792,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"heart1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[389.25,255.25,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":124.000005050624,"op":147.000005987433,"st":-63.0000025660426,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"heart1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[389.25,255.25,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":18.000000733155,"op":124.000005050624,"st":18.000000733155,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"heart1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[255,122.25,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":144.00000586524,"op":168.00000684278,"st":-42.0000017106951,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"heart1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[255,122.25,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":0,"op":144.00000586524,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/android/app/src/main/res/raw/cwtch_animated_logo_op.json b/android/app/src/main/res/raw/cwtch_animated_logo_op.json new file mode 100644 index 0000000..64136a0 --- /dev/null +++ b/android/app/src/main/res/raw/cwtch_animated_logo_op.json @@ -0,0 +1 @@ +{"v":"5.7.4","fr":29.9700012207031,"ip":0,"op":130.000005295009,"w":1242,"h":2208,"nm":"Comp 2","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"heart1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":270,"ix":10},"p":{"a":0,"k":[119.75,254.25,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":81.0000032991976,"op":107.000004358199,"st":-103.000004195276,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"heart1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":270,"ix":10},"p":{"a":0,"k":[119.75,254.25,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":54.0000021994651,"op":81.0000032991976,"st":54.0000021994651,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"heart1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":180,"ix":10},"p":{"a":0,"k":[252.75,388.75,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":103.000004195276,"op":127.000005172816,"st":-83.0000033806593,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"heart1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":180,"ix":10},"p":{"a":0,"k":[252.75,388.75,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":35.0000014255792,"op":103.000004195276,"st":35.0000014255792,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"heart1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[389.25,255.25,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":124.000005050624,"op":147.000005987433,"st":-63.0000025660426,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"heart1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[389.25,255.25,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":18.000000733155,"op":124.000005050624,"st":18.000000733155,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"heart1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[255,122.25,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":144.00000586524,"op":168.00000684278,"st":-42.0000017106951,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"heart1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[255,122.25,0],"ix":2,"l":2},"a":{"a":0,"k":[163.5,145,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":327,"h":290,"ip":0,"op":144.00000586524,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-45,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13,"s":[130.812,36.688,0],"to":[15.854,16.521,0],"ti":[-15.854,-16.521,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":17,"s":[225.938,135.812,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":187,"s":[225.938,135.812,0],"to":[-15.854,-16.521,0],"ti":[15.854,16.521,0]},{"t":191.000007779589,"s":[130.812,36.688,0]}],"ix":2,"l":2},"a":{"a":0,"k":[43.562,-24.562,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44.125,137.125],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.485674749636,0.949019607843,0.850899430817,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.562,-24.562],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":13.0000005295009,"op":216.00000879786,"st":13.0000005295009,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Gradient Fill_1","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[163.5,145,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[25.75,-64.625],[6.5,-47.625],[99.25,45.75],[121.125,29.375]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.411,0.392,0.192,0.486,0.706,0.229,0.127,0.273,1,0.067,0.063,0.059],"ix":9}},"s":{"a":0,"k":[0,0],"ix":5},"e":{"a":0,"k":[100,0],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":13.0000005295009,"op":223.000009082976,"st":13.0000005295009,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[163.5,145,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[84.25,32.25],[84.625,30.75],[84.5,31.625],[84.75,29.75],[84.75,30.625],[83.625,29.25],[84.625,31.25],[85,30.375],[98.25,17],[71,-3.25],[61.25,8.125],[61.875,9],[60.875,7.5],[61,8.625],[60.375,9.375],[61.125,9.25],[84.5,30.25],[85.375,30.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5.889,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[57.25,59.5],[57.625,58],[57.5,58.875],[57.75,57],[57.75,57.875],[56.625,56.5],[57.625,58.5],[58,57.625],[98.25,17],[71,-3.25],[36.125,32.25],[36.75,33.125],[35.75,31.625],[35.875,32.75],[35.25,33.5],[36,33.375],[57.5,57.5],[58.375,58.125]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6.778,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[20.125,98.125],[20.5,96.625],[20.375,97.5],[20.625,95.625],[20.625,96.5],[19.5,95.125],[20.5,97.125],[36.5,82.75],[98.25,17],[71,-3.25],[-0.375,68.5],[0.25,69.375],[-0.75,67.875],[-0.625,69],[-1.25,69.75],[-0.5,69.625],[20.375,96.125],[21.25,96.75]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.668,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-21,97.25],[-20.625,95.75],[-20.75,96.625],[-20.5,94.75],[-20.5,95.625],[-21.625,94.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-0.375,68.5],[0.25,69.375],[-0.75,67.875],[-0.625,69],[-1.25,69.75],[-0.5,69.625],[-20.75,95.25],[-19.875,95.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8.556,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-61.375,66.25],[-61,64.75],[-61.125,65.625],[-60.875,63.75],[-60.875,64.625],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-33.75,37],[-34.75,35.5],[-34.625,36.625],[-35.25,37.375],[-34.5,37.25],[-61.125,64.25],[-60.25,64.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.444,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-92.875,31.25],[-92.5,29.75],[-92.625,30.625],[-92.375,28.75],[-92.375,29.625],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-62.75,4.5],[-62.625,5.625],[-63.25,6.375],[-62.5,6.25],[-92.625,29.25],[-91.75,29.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.333,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-118.75,-72.875],[-118.375,-74.375],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-82.875,-57],[-82.125,-57.125],[-118.5,-74.875],[-117.625,-74.25]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.223,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-19,17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[19,-17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-72,-116.5],[-98.5,-99.25],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-69.25,-71.375],[-63.75,-71.25],[-62.875,-116.875],[-67.375,-116.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.111,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-19,17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[19,-17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-72,-116.5],[-98.5,-99.25],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-69.25,-71.375],[-63.75,-71.25],[-62.875,-116.875],[-67.375,-116.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":13,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-19,17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[19,-17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-72,-116.5],[-98.5,-99.25],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-62.75,-75.5],[-32.75,-65.75],[0.25,-99.25],[-36.75,-115.25]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":191.223,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-19,17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[19,-17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-72,-116.5],[-98.5,-99.25],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-62.75,-75.5],[-32.75,-65.75],[0.25,-99.25],[-36.75,-115.25]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":192.111,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-19,17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[19,-17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-72,-116.5],[-98.5,-99.25],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-69.25,-71.375],[-63.75,-71.25],[-62.875,-116.875],[-67.375,-116.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":193,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-19,17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[19,-17],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-72,-116.5],[-98.5,-99.25],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-69.25,-71.375],[-63.75,-71.25],[-62.875,-116.875],[-67.375,-116.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":193.89,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-118.75,-72.875],[-118.375,-74.375],[-118.5,-73.5],[-118,-16.5],[-99,19.75],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-79.5,-25.5],[-82.25,-57.75],[-82.875,-57],[-82.125,-57.125],[-118.5,-74.875],[-117.625,-74.25]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":194.779,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-92.875,31.25],[-92.5,29.75],[-92.625,30.625],[-92.375,28.75],[-92.375,29.625],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-61.75,6],[-62.75,4.5],[-62.625,5.625],[-63.25,6.375],[-62.5,6.25],[-92.625,29.25],[-91.75,29.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":195.666,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-61.375,66.25],[-61,64.75],[-61.125,65.625],[-60.875,63.75],[-60.875,64.625],[-62,63.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-3.75,65.75],[-33.75,37],[-34.75,35.5],[-34.625,36.625],[-35.25,37.375],[-34.5,37.25],[-61.125,64.25],[-60.25,64.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":196.555,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-21,97.25],[-20.625,95.75],[-20.75,96.625],[-20.5,94.75],[-20.5,95.625],[-21.625,94.25],[-4,112.25],[36.5,82.75],[98.25,17],[71,-3.25],[-0.375,68.5],[0.25,69.375],[-0.75,67.875],[-0.625,69],[-1.25,69.75],[-0.5,69.625],[-20.75,95.25],[-19.875,95.875]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":197.445,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[20.125,98.125],[20.5,96.625],[20.375,97.5],[20.625,95.625],[20.625,96.5],[19.5,95.125],[20.5,97.125],[36.5,82.75],[98.25,17],[71,-3.25],[-0.375,68.5],[0.25,69.375],[-0.75,67.875],[-0.625,69],[-1.25,69.75],[-0.5,69.625],[20.375,96.125],[21.25,96.75]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":198.334,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[57.25,59.5],[57.625,58],[57.5,58.875],[57.75,57],[57.75,57.875],[56.625,56.5],[57.625,58.5],[58,57.625],[98.25,17],[71,-3.25],[36.125,32.25],[36.75,33.125],[35.75,31.625],[35.875,32.75],[35.25,33.5],[36,33.375],[57.5,57.5],[58.375,58.125]],"c":true}]},{"t":199.222508114499,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[84.25,32.25],[84.625,30.75],[84.5,31.625],[84.75,29.75],[84.75,30.625],[83.625,29.25],[84.625,31.25],[85,30.375],[98.25,17],[71,-3.25],[61.25,8.125],[61.875,9],[60.875,7.5],[61,8.625],[60.375,9.375],[61.125,9.25],[84.5,30.25],[85.375,30.875]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.485674749636,0.949019607843,0.850899430817,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5.00000020365417,"op":215.00000875713,"st":5.00000020365417,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Gradient Fill_2","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[144.5,143.75,0],"ix":2,"l":2},"a":{"a":0,"k":[97,108.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[15.32,-15.32],[-22.18,-37.58],[-8.27,-9.9],[-34.38,-27.34],[-15.84,15.83],[-5.9,6.87],[0,0],[7.34,-7.34],[13.62,-11.5],[0,0],[0,0],[14.29,17.55],[4.55,9.42],[0.38,6.48],[-2.45,5.95],[-6.41,6.41],[-5.83,2.09],[-8.02,-1.44],[0,0],[-4.58,-2.6],[0,0],[11.46,2.33]],"o":[[-28.01,28.01],[5.34,9.04],[18.86,22.58],[22.52,-17.91],[7.26,-7.26],[0,0],[-5.78,6.83],[-10.39,10.39],[0,0],[0,0],[-24.91,-21.03],[-9.08,-11.14],[-3.92,-8.14],[-0.19,-3.16],[2.4,-5.84],[2.39,-2.39],[6.02,-2.16],[0,0],[3.49,0.72],[0,0],[-5.51,-2.83],[-23.38,-4.74]],"v":[[-73.323,-90.495],[-81.753,4.345],[-61.243,32.885],[18.987,108.105],[76.777,57.275],[96.587,36.005],[77.827,17.245],[58.077,38.565],[21.887,71.555],[18.987,73.995],[16.097,71.555],[-42.993,13.415],[-63.523,-17.565],[-70.013,-39.595],[-67.713,-53.595],[-54.623,-71.795],[-42.543,-79.705],[-21.673,-80.775],[-21.563,-80.755],[-9.533,-75.805],[11.627,-96.965],[-14.993,-106.435]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.39199999641,0.19199999641,0.486000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[96.587,108.105],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5.00000020365417,"op":215.00000875713,"st":5.00000020365417,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"new curve 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[163.5,145,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.5,4],[0,0],[-31,-24.75],[1.25,-1.5]],"o":[[5.5,-4],[0,0],[44.579,35.591],[-1.25,1.5]],"v":[[-65.5,-9.5],[10.75,-84],[79.5,-86.25],[93.5,-13.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":26,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0,0,0,0.092,0.196,0.096,0.243,0.64,0.392,0.192,0.486],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":13},"bm":0,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":5,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":199,"s":[0]},{"t":206.000008390552,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":5,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":199,"s":[100]},{"t":206.000008390552,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":210.000008553475,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"new curve","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[163.5,145,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.5,4],[0,0],[-31,-24.75],[1.25,-1.5]],"o":[[5.5,-4],[0,0],[44.579,35.591],[-1.25,1.5]],"v":[[-65.5,-9.5],[10.75,-84],[79.5,-86.25],[93.5,-13.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.392156892664,0.192156877705,0.486274539723,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":26,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":5,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":199,"s":[0]},{"t":206.000008390552,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":5,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":199,"s":[100]},{"t":206.000008390552,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":210.000008553475,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 4 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[621,1718,0],"ix":2,"l":2},"a":{"a":0,"k":[417,253.5,0],"ix":1,"l":2},"s":{"a":0,"k":[57,57,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.33,-0.73],[0,0],[0,0],[0.547,-0.071],[0.085,0.011],[0,0],[0.071,0.548],[-0.011,0.085],[0,0],[0,0],[-0.84,0],[0,0],[-0.176,-0.552],[0,0],[0,0],[-0.581,-0.025]],"o":[[0.84,0],[0,0],[0,0],[0.071,0.548],[-0.086,0.011],[0,0],[-0.548,0.071],[-0.011,-0.085],[0,0],[0,0],[-0.34,-0.73],[0,0],[0.579,-0.027],[0,0],[0,0],[0.183,-0.552],[0,0]],"v":[[13.16,-19.597],[14.06,-18.307],[3.81,4.923],[3.81,18.473],[2.947,19.593],[2.69,19.593],[-2.68,19.593],[-3.8,18.729],[-3.8,18.473],[-3.8,4.923],[-14.05,-18.307],[-13.15,-19.597],[-7.55,-19.597],[-6.27,-18.707],[0,-4.317],[6.27,-18.707],[7.56,-19.597]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[676.98,487.227],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.053,-0.438],[0.008,-0.064],[0,0],[0.438,-0.059],[0.067,0.008],[0,0],[0,0],[0.419,-0.073],[0.087,0.015],[0,0],[0.059,0.438],[-0.008,0.067],[0,0],[0,0],[0.041,0.451],[-0.005,0.052],[0,0],[-0.451,0.04],[-0.049,-0.004]],"o":[[0.439,-0.053],[0.008,0.064],[0,0],[0.059,0.438],[-0.067,0.009],[0,0],[0,0],[0.073,0.419],[-0.087,0.015],[0,0],[-0.438,0.059],[-0.009,-0.067],[0,0],[0,0],[-0.451,0.041],[-0.005,-0.053],[0,0],[-0.041,-0.451],[0.049,-0.004],[0,0]],"v":[[10.316,-19.584],[11.206,-18.886],[11.206,-18.694],[11.206,-13.094],[10.519,-12.195],[10.316,-12.194],[3.816,-12.194],[3.816,18.716],[3.189,19.606],[2.926,19.606],[-2.894,19.606],[-3.793,18.919],[-3.794,18.716],[-3.794,-12.194],[-10.334,-12.194],[-11.225,-12.936],[-11.224,-13.094],[-11.224,-18.694],[-10.481,-19.584],[-10.334,-19.584]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[640.404,487.214],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.67,0],[0,0],[0,0],[0,0],[-0.038,-0.457],[0.01,-0.064],[0,0],[0.453,-0.068],[0.064,0.005],[0,0],[0,0],[0,0],[0,-0.62],[0,0],[0.67,0],[0,0],[0.019,0.441],[-0.005,0.042],[0,0],[-0.439,0.051],[-0.042,-0.002],[0,0],[0,-0.55]],"o":[[0,0.56],[0,0],[0,0],[0,0],[0.457,-0.038],[0.006,0.064],[0,0],[0.068,0.453],[-0.064,0.009],[0,0],[0,0],[0,0],[0.67,0],[0,0],[0,0.56],[0,0],[-0.441,0.019],[-0.002,-0.042],[0,0],[-0.05,-0.439],[0.042,-0.004],[0,0],[0.67,0],[0,0]],"v":[[11.195,-13.12],[10.295,-12.12],[-3.535,-12.12],[-3.535,-3.5],[6.995,-3.5],[7.891,-2.742],[7.885,-2.55],[7.885,2.98],[7.187,3.924],[6.995,3.93],[-3.535,3.93],[-3.535,12.22],[10.295,12.22],[11.195,13.12],[11.195,18.72],[10.295,19.61],[-10.315,19.61],[-11.149,18.846],[-11.145,18.72],[-11.145,-18.72],[-10.441,-19.606],[-10.315,-19.61],[10.295,-19.61],[11.195,-18.72]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[605.705,487.239],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.059,0.438],[-0.008,0.067],[0,0],[-0.439,0.053],[-0.067,-0.009],[0,0],[-0.04,-0.451],[0.004,-0.049],[0,0],[0.451,-0.04],[0.049,0.004]],"o":[[-0.438,0.059],[-0.009,-0.067],[0,0],[-0.054,-0.439],[0.067,-0.008],[0,0],[0.451,-0.04],[0.004,0.049],[0,0],[0.04,0.451],[-0.049,0.004],[0,0]],"v":[[-2.883,19.599],[-3.782,18.912],[-3.783,18.709],[-3.783,-18.701],[-3.086,-19.592],[-2.883,-19.591],[2.907,-19.591],[3.797,-18.848],[3.797,-18.701],[3.797,18.709],[3.054,19.599],[2.907,19.599]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[576.163,487.22],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.451,-0.041],[0.052,0.005],[0,0],[0.059,0.438],[-0.008,0.067],[0,0],[1.095,0.142],[0.17,-0.022],[0,0],[0.142,-1.095],[-0.022,-0.17],[0,0],[-1.096,-0.142],[-0.17,0.022],[0,0],[-0.142,1.095],[0.022,0.17],[0,0],[-0.439,0.053],[-0.067,-0.009],[0,0],[-0.046,-0.45],[0.005,-0.053],[0,0],[5.21,0],[0,0],[0,5.26],[0,0],[-5.26,0],[0,0],[0,-5.26]],"o":[[0.041,0.451],[-0.053,0.005],[0,0],[-0.438,0.059],[-0.009,-0.067],[0,0],[0.142,-1.095],[-0.17,-0.022],[0,0],[-1.096,-0.142],[-0.022,0.17],[0,0],[-0.142,1.095],[0.17,0.022],[0,0],[1.095,0.142],[0.022,-0.17],[0,0],[-0.054,-0.439],[0.067,-0.008],[0,0],[0.45,-0.046],[0.005,0.053],[0,0],[0,5.26],[0,0],[-5.26,0],[0,0],[0,-5.26],[0,0],[5.21,0],[0,0]],"v":[[11.21,-5.46],[10.468,-4.569],[10.31,-4.57],[5.049,-4.57],[4.151,-5.257],[4.149,-5.46],[4.149,-10.05],[2.422,-12.29],[1.909,-12.29],[-1.67,-12.29],[-3.911,-10.563],[-3.911,-10.05],[-3.911,10.27],[-2.183,12.51],[-1.67,12.51],[1.909,12.51],[4.149,10.783],[4.149,10.27],[4.149,5.51],[4.846,4.619],[5.049,4.62],[10.31,4.62],[11.208,5.352],[11.21,5.51],[11.21,11.51],[3.14,19.57],[-3.13,19.57],[-11.25,11.51],[-11.25,-11.51],[-3.13,-19.57],[3.14,-19.57],[11.21,-11.51]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[546.61,487.2],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.142,1.095],[0.022,0.17],[0,0],[1.095,0.142],[0.17,-0.022],[0,0],[0.142,-1.095],[-0.022,-0.17],[0,0],[-1.095,-0.142],[-0.17,0.022]],"o":[[1.095,0.142],[0.022,-0.17],[0,0],[0.142,-1.095],[-0.17,-0.022],[0,0],[-1.095,-0.142],[-0.022,0.17],[0,0],[-0.142,1.096],[0.17,0.022],[0,0]],"v":[[1.91,12.375],[4.15,10.648],[4.15,10.135],[4.15,-10.135],[2.423,-12.375],[1.91,-12.375],[-1.68,-12.375],[-3.92,-10.648],[-3.92,-10.135],[-3.92,10.135],[-2.193,12.375],[-1.68,12.375]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-5.27,0],[0,0],[0,-5.26],[0,0],[5.26,0],[0,0],[0,5.26]],"o":[[0,-5.26],[0,0],[5.26,0],[0,0],[0,5.26],[0,0],[-5.27,0],[0,0]],"v":[[-11.2,-11.535],[-3.13,-19.595],[3.14,-19.595],[11.2,-11.535],[11.2,11.535],[3.14,19.595],[-3.13,19.595],[-11.2,11.535]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[509.6,487.225],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":4,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-5.26],[0,0],[0.439,-0.053],[0.067,0.009],[0,0],[0.046,0.45],[-0.005,0.052],[0,0],[1.095,0.142],[0.17,-0.022],[0,0],[0.142,-1.095],[-0.022,-0.17],[0,0],[0,0],[0.046,-0.946],[0,0],[5.26,0],[0,0],[0,5.26],[0,0],[-0.438,0.059],[-0.071,-0.01],[0,0],[0,-0.62],[0,0],[-1.095,-0.142],[-0.17,0.022],[0,0],[-0.142,1.095],[0.022,0.17],[0,0],[0,0],[-0.063,0.964],[0,0],[-5.21,0]],"o":[[5.26,0],[0,0],[0.054,0.439],[-0.067,0.008],[0,0],[-0.451,0.046],[-0.006,-0.053],[0,0],[0.142,-1.095],[-0.17,-0.022],[0,0],[-1.096,-0.142],[-0.022,0.17],[0,0],[0,0],[0.905,0.278],[0,0],[0,5.26],[0,0],[-5.21,0],[0,0],[-0.059,-0.438],[0.071,-0.01],[0,0],[0.62,0],[0,0],[-0.142,1.095],[0.17,0.022],[0,0],[1.095,0.142],[0.022,-0.17],[0,0],[0,0],[-0.937,-0.235],[0,0],[0,-5.26],[0,0]],"v":[[3.145,-22.395],[11.204,-14.335],[11.204,-8.395],[10.507,-7.504],[10.304,-7.505],[4.484,-7.505],[3.585,-8.237],[3.584,-8.395],[3.584,-12.765],[1.857,-15.005],[1.344,-15.005],[-1.336,-15.005],[-3.576,-13.278],[-3.576,-12.765],[-3.576,-5.035],[9.744,-0.675],[11.204,1.405],[11.204,14.335],[3.145,22.395],[-3.126,22.395],[-11.196,14.335],[-11.196,8.455],[-10.51,7.555],[-10.296,7.555],[-4.476,7.555],[-3.576,8.455],[-3.576,12.795],[-1.849,15.035],[-1.336,15.035],[1.344,15.035],[3.584,13.308],[3.584,12.795],[3.584,5.345],[-9.686,0.985],[-11.196,-1.085],[-11.196,-14.335],[-3.126,-22.395]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[472.635,484.425],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.457,0.035],[-0.045,-0.004],[0,0],[0,-0.55],[0,0],[0.72,0],[0,0],[0.046,0.45],[-0.005,0.052],[0,0],[0,0],[0,0],[0.451,-0.041],[0.052,0.005],[0,0],[0,0.56],[0,0],[-0.72,0],[0,0],[-0.04,-0.456],[0.003,-0.045],[0,0],[0,0]],"o":[[-0.035,-0.457],[0.046,-0.003],[0,0],[0.67,0],[0,0],[0,0.56],[0,0],[-0.45,0.046],[-0.005,-0.053],[0,0],[0,0],[0,0],[0.041,0.451],[-0.053,0.005],[0,0],[-0.68,0],[0,0],[0,-0.55],[0,0],[0.457,-0.04],[0.004,0.045],[0,0],[0,0],[0,0]],"v":[[3.575,-18.701],[4.339,-19.592],[4.475,-19.591],[10.245,-19.591],[11.245,-18.701],[11.245,18.709],[10.245,19.599],[4.475,19.599],[3.576,18.867],[3.575,18.709],[3.575,3.809],[-3.585,3.809],[-3.585,18.709],[-4.327,19.6],[-4.485,19.599],[-10.245,19.599],[-11.245,18.709],[-11.245,-18.701],[-10.245,-19.591],[-4.485,-19.591],[-3.586,-18.837],[-3.585,-18.701],[-3.585,-3.581],[3.575,-3.581]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[412.725,487.22],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.451,-0.041],[0.052,0.005],[0,0],[0.059,0.432],[-0.01,0.071],[0,0],[1.095,0.142],[0.17,-0.022],[0,0],[0.142,-1.095],[-0.022,-0.17],[0,0],[-1.095,-0.142],[-0.17,0.022],[0,0],[-0.142,1.095],[0.022,0.17],[0,0],[-0.432,0.059],[-0.071,-0.01],[0,0],[-0.046,-0.45],[0.005,-0.053],[0,0],[5.2,0],[0,0],[0,5.26],[0,0],[-5.27,0],[0,0],[0,-5.26]],"o":[[0.041,0.451],[-0.053,0.005],[0,0],[-0.432,0.059],[-0.01,-0.072],[0,0],[0.142,-1.095],[-0.17,-0.022],[0,0],[-1.095,-0.142],[-0.022,0.17],[0,0],[-0.142,1.095],[0.17,0.022],[0,0],[1.095,0.142],[0.022,-0.17],[0,0],[-0.059,-0.432],[0.072,-0.01],[0,0],[0.45,-0.046],[0.005,0.053],[0,0],[0,5.26],[0,0],[-5.27,0],[0,0],[0,-5.26],[0,0],[5.2,0],[0,0]],"v":[[11.199,-5.46],[10.457,-4.569],[10.299,-4.57],[5.039,-4.57],[4.149,-5.245],[4.149,-5.46],[4.149,-10.05],[2.422,-12.29],[1.909,-12.29],[-1.691,-12.29],[-3.931,-10.563],[-3.931,-10.05],[-3.931,10.27],[-2.204,12.51],[-1.691,12.51],[1.899,12.51],[4.139,10.783],[4.139,10.27],[4.139,5.51],[4.814,4.62],[5.029,4.62],[10.309,4.62],[11.208,5.352],[11.209,5.51],[11.209,11.51],[3.149,19.57],[-3.121,19.57],[-11.241,11.51],[-11.241,-11.51],[-3.121,-19.57],[3.149,-19.57],[11.209,-11.51]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[375.76,487.2],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.142,1.095],[0.022,0.17],[0,0],[1.095,0.142],[0.17,-0.022],[0,0],[0,0]],"o":[[1.095,0.142],[0.022,-0.17],[0,0],[0.142,-1.095],[-0.17,-0.022],[0,0],[0,0],[0,0]],"v":[[1.741,0.552],[3.981,-1.175],[3.981,-1.688],[3.981,-10.148],[2.254,-12.388],[1.741,-12.388],[-3.859,-12.388],[-3.859,0.552]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[2.07,-1.29],[0,0],[0.61,0],[0,0],[0.069,0.481],[0.001,0.011],[0,0],[0,0],[0,0],[0.451,-0.041],[0.052,0.005],[0,0],[0.04,0.451],[-0.004,0.049],[0,0],[-0.451,0.04],[-0.049,-0.004],[0,0],[0,-5.26]],"o":[[0,3.24],[0,0],[0.17,0.68],[0,0],[-0.481,0.069],[-0.001,-0.012],[0,0],[0,0],[0,0],[0.041,0.451],[-0.053,0.005],[0,0],[-0.451,0.04],[-0.004,-0.049],[0,0],[-0.041,-0.451],[0.049,-0.004],[0,0],[5.27,0],[0,0]],"v":[[11.251,-0.288],[8.121,6.542],[11.031,18.542],[10.251,19.542],[4.761,19.542],[3.765,18.796],[3.761,18.762],[1.071,7.762],[-3.929,7.762],[-3.929,18.682],[-4.671,19.573],[-4.829,19.572],[-10.319,19.572],[-11.209,18.829],[-11.209,18.682],[-11.209,-18.718],[-10.466,-19.608],[-10.319,-19.608],[3.121,-19.608],[11.181,-11.548]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[338.689,487.238],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":4,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-0.04,-9.963],[-3.57,5.267],[3.49,5.267]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.042,0.455],[0,0],[0,0],[0,0],[0.457,0.018],[0,0],[-0.17,0.67],[0,0],[-0.478,-0.047],[0,0],[-0.051,-0.473],[-0.001,-0.006],[0,0],[0.68,0]],"o":[[-0.457,0.018],[0,0],[0,0],[0,0],[-0.042,0.455],[0,0],[-0.62,0],[0,0],[0.047,-0.478],[0,0],[0.472,-0.052],[0.001,0.006],[0,0],[0.17,0.62],[0,0]],"v":[[7.91,19.637],[7.02,18.857],[5.23,11.797],[-5.3,11.797],[-7.04,18.857],[-7.93,19.637],[-13.41,19.637],[-14.14,18.637],[-4.84,-18.823],[-3.89,-19.603],[3.89,-19.603],[4.838,-18.841],[4.84,-18.823],[14.14,18.637],[13.35,19.637]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[300.48,487.183],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":4,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.67,0],[0,0],[0,0],[0,0],[-0.037,-0.463],[0.008,-0.06],[0,0],[0.46,-0.062],[0.06,0.005],[0,0],[0,0],[0,0],[0,-0.62],[0,0],[0.67,0],[0,0],[0.018,0.447],[-0.004,0.038],[0,0],[-0.445,0.045],[-0.038,-0.002],[0,0],[0,-0.55]],"o":[[0,0.56],[0,0],[0,0],[0,0],[0.462,-0.037],[0.005,0.06],[0,0],[0.062,0.46],[-0.059,0.008],[0,0],[0,0],[0,0],[0.67,0],[0,0],[0,0.56],[0,0],[-0.447,0.019],[-0.002,-0.039],[0,0],[-0.045,-0.445],[0.038,-0.004],[0,0],[0.67,0],[0,0]],"v":[[11.188,-13.12],[10.297,-12.12],[-3.533,-12.12],[-3.533,-3.5],[6.987,-3.5],[7.892,-2.73],[7.887,-2.55],[7.887,2.98],[7.167,3.925],[6.987,3.93],[-3.533,3.93],[-3.533,12.22],[10.307,12.22],[11.197,13.12],[11.197,18.72],[10.307,19.61],[-10.312,19.61],[-11.156,18.835],[-11.153,18.72],[-11.153,-18.72],[-10.428,-19.607],[-10.312,-19.61],[10.307,-19.61],[11.197,-18.72]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[262.763,487.239],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":4,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-5.26],[0,0],[0.439,-0.053],[0.067,0.009],[0,0],[0.046,0.45],[-0.005,0.052],[0,0],[1.095,0.142],[0.17,-0.022],[0,0],[0.142,-1.095],[-0.022,-0.17],[0,0],[0,0],[0.061,-0.952],[0,0],[5.26,0],[0,0],[0,5.26],[0,0],[-0.438,0.059],[-0.071,-0.01],[0,0],[0,-0.62],[0,0],[-1.095,-0.142],[-0.17,0.022],[0,0],[-0.142,1.095],[0.022,0.17],[0,0],[0,0],[-0.063,0.964],[0,0],[-5.2,0]],"o":[[5.26,0],[0,0],[0.054,0.439],[-0.067,0.008],[0,0],[-0.451,0.046],[-0.005,-0.053],[0,0],[0.142,-1.095],[-0.17,-0.022],[0,0],[-1.095,-0.142],[-0.022,0.17],[0,0],[0,0],[0.921,0.246],[0,0],[0,5.26],[0,0],[-5.2,0],[0,0],[-0.059,-0.438],[0.071,-0.01],[0,0],[0.62,0],[0,0],[-0.142,1.095],[0.17,0.022],[0,0],[1.095,0.142],[0.022,-0.17],[0,0],[0,0],[-0.937,-0.235],[0,0],[0,-5.26],[0,0]],"v":[[3.131,-19.59],[11.191,-11.53],[11.191,-7.83],[10.494,-6.939],[10.291,-6.94],[4.641,-6.94],[3.742,-7.672],[3.741,-7.83],[3.741,-10.18],[2.014,-12.42],[1.501,-12.42],[-1.579,-12.42],[-3.819,-10.693],[-3.819,-10.18],[-3.819,-5.43],[9.731,-1.06],[11.211,1],[11.211,11.53],[3.151,19.59],[-3.129,19.59],[-11.189,11.53],[-11.189,7.9],[-10.503,7],[-10.289,7],[-4.639,7],[-3.739,7.9],[-3.739,10.25],[-2.012,12.49],[-1.499,12.49],[1.501,12.49],[3.741,10.763],[3.741,10.25],[3.741,4.6],[-9.699,0.23],[-11.209,-1.84],[-11.209,-11.53],[-3.149,-19.59]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[225.859,487.22],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.67,0],[0,0],[0,0],[0,0],[-0.038,-0.457],[0.01,-0.064],[0,0],[0.453,-0.068],[0.064,0.005],[0,0],[0,0],[0,0],[0,-0.62],[0,0],[0.67,0],[0,0],[0.025,0.441],[-0.005,0.045],[0,0],[-0.445,0.045],[-0.038,-0.002],[0,0],[0,-0.55]],"o":[[0,0.56],[0,0],[0,0],[0,0],[0.457,-0.038],[0.006,0.064],[0,0],[0.068,0.453],[-0.064,0.009],[0,0],[0,0],[0,0],[0.67,0],[0,0],[0,0.56],[0,0],[-0.441,0.025],[-0.003,-0.046],[0,0],[-0.045,-0.445],[0.038,-0.004],[0,0],[0.67,0],[0,0]],"v":[[11.193,-13.12],[10.292,-12.12],[-3.508,-12.12],[-3.508,-3.5],[6.992,-3.5],[7.889,-2.742],[7.882,-2.55],[7.882,2.98],[7.184,3.924],[6.992,3.93],[-3.508,3.93],[-3.508,12.22],[10.292,12.22],[11.193,13.12],[11.193,18.72],[10.292,19.61],[-10.307,19.61],[-11.152,18.857],[-11.148,18.72],[-11.148,-18.72],[-10.423,-19.607],[-10.307,-19.61],[10.292,-19.61],[11.193,-18.72]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[190.577,487.239],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":4,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.142,1.095],[0.022,0.17],[0,0],[1.095,0.142],[0.17,-0.022],[0,0],[0,0]],"o":[[1.095,0.142],[0.022,-0.17],[0,0],[0.142,-1.095],[-0.17,-0.022],[0,0],[0,0],[0,0]],"v":[[1.67,-0.004],[3.91,-1.731],[3.91,-2.244],[3.91,-12.774],[2.183,-15.014],[1.67,-15.014],[-3.87,-15.014],[-3.87,-0.014]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[2.69,-1.17],[0,0],[0.61,0],[0,0],[0.053,0.475],[0,0],[0,0],[0,0],[0.451,-0.041],[0.052,0.005],[0,0],[0.046,0.45],[-0.005,0.052],[0,0],[-0.457,0.04],[-0.049,-0.004],[0,0],[0,-5.26]],"o":[[0,3.75],[0,0],[0.17,0.68],[0,0],[-0.476,0.041],[0,0],[0,0],[0,0],[0.041,0.451],[-0.053,0.005],[0,0],[-0.451,0.046],[-0.005,-0.053],[0,0],[-0.04,-0.457],[0.048,-0.004],[0,0],[5.27,0],[0,0]],"v":[[11.53,-0.684],[7.44,6.706],[11.3,21.376],[10.52,22.376],[4.73,22.376],[3.78,21.596],[0.03,7.376],[-3.87,7.376],[-3.87,21.486],[-4.612,22.377],[-4.77,22.376],[-10.59,22.376],[-11.489,21.644],[-11.49,21.486],[-11.49,-21.514],[-10.736,-22.414],[-10.59,-22.414],[3.46,-22.414],[11.53,-14.354]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[153.34,484.433],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":6,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.92,-2],[0,0],[0,0],[1.513,-0.188],[0.227,0.028],[0,0],[0.182,1.519],[-0.026,0.219],[0,0],[0,0],[-2.31,0],[0,0],[-0.485,-1.533],[0,0],[0,0],[-1.603,-0.083]],"o":[[2.31,0],[0,0],[0,0],[0.188,1.513],[-0.226,0.028],[0,0],[-1.519,0.182],[-0.026,-0.219],[0,0],[0,0],[-0.93,-2],[0,0],[1.605,-0.084],[0,0],[0,0],[0.481,-1.531],[0,0]],"v":[[36.487,-53.949],[38.956,-50.409],[10.766,13.501],[10.766,50.771],[8.368,53.851],[7.686,53.851],[-7.094,53.851],[-10.174,51.43],[-10.174,50.771],[-10.174,13.501],[-38.354,-50.409],[-35.893,-53.949],[-20.494,-53.949],[-16.944,-51.489],[0.346,-11.909],[17.596,-51.489],[21.136,-53.949]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[793.724,369.319],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":4,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.242,-0.116],[0.14,0.013],[0,0],[0.16,1.199],[-0.026,0.192],[0,0],[4,0],[0,0],[0,-4],[0,0],[-4,0],[0,0],[0,4.16],[0,0],[-1.199,0.16],[-0.192,-0.026],[0,0],[-0.116,-1.242],[0.013,-0.14],[0,0],[14.32,0],[0,0],[0,14.48],[0,0],[-14.48,0],[0,0],[0,-14.48]],"o":[[0.116,1.243],[-0.14,0.013],[0,0],[-1.199,0.16],[-0.026,-0.192],[0,0],[0,-4],[0,0],[-4.16,0],[0,0],[0,4.16],[0,0],[4,0],[0,0],[-0.16,-1.199],[0.192,-0.026],[0,0],[1.243,-0.116],[0.013,0.14],[0,0],[0,14.48],[0,0],[-14.48,0],[0,0],[0,-14.48],[0,0],[14.32,0],[0,0]],"v":[[30.817,-15.05],[28.777,-12.59],[28.357,-12.59],[13.877,-12.59],[11.417,-14.472],[11.417,-15.05],[11.417,-27.72],[5.257,-33.88],[-4.603,-33.88],[-10.763,-27.72],[-10.763,28.18],[-4.603,34.34],[5.257,34.34],[11.417,28.18],[11.417,15.09],[13.299,12.63],[13.877,12.63],[28.357,12.63],[30.817,14.67],[30.817,15.09],[30.817,31.72],[8.647,53.9],[-8.603,53.9],[-30.933,31.72],[-30.933,-31.72],[-8.603,-53.9],[8.647,-53.9],[30.817,-31.72]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[715.003,369.27],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-0.1,-27.385],[-9.8,14.505],[9.61,14.505]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.111,1.262],[0,0],[0,0],[0,0],[1.267,0.058],[0,0],[-0.47,1.7],[0,0],[-1.319,-0.127],[0,0],[0,0],[-0.128,-1.319],[0,0],[0,0],[1.85,0]],"o":[[-1.265,0.053],[0,0],[0,0],[0,0],[-0.106,1.264],[0,0],[-1.7,0],[0,0],[0.126,-1.319],[0,0],[0,0],[1.319,-0.128],[0,0],[0,0],[0.46,1.7],[0,0]],"v":[[21.77,53.925],[19.31,51.765],[14.38,32.365],[-14.57,32.365],[-19.35,51.765],[-21.81,53.925],[-36.9,53.925],[-38.9,51.305],[-13.34,-51.695],[-10.722,-53.855],[-10.72,-53.855],[10.72,-53.855],[13.34,-51.697],[13.34,-51.695],[38.91,51.305],[36.75,53.925]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[637.35,369.295],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":4,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.46,-2.16],[0,0],[1.684,0.115],[0,0],[0.218,1.671],[0,0],[-2.31,0],[0,0],[-0.223,-1.673],[0,0],[0,0],[-1.684,-0.115]],"o":[[2.31,0],[0,0],[-0.223,1.673],[0,0],[-1.681,0.115],[0,0],[-0.46,-2.16],[0,0],[1.684,-0.115],[0,0],[0,0],[0.223,-1.673],[0,0]],"v":[[32.73,-53.9],[35.5,-50.51],[11.01,51.13],[7.62,53.9],[-7.81,53.9],[-11.19,51.13],[-35.5,-50.51],[-32.72,-53.9],[-18.72,-53.9],[-15.33,-51.13],[-0.09,18.48],[15.31,-51.13],[18.7,-53.9]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[571.88,369.27],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":2,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.16,1.199],[-0.026,0.192],[0,0],[-1.199,0.16],[-0.192,-0.026],[0,0],[-0.116,-1.242],[0.013,-0.14],[0,0],[1.242,-0.116],[0.14,0.013]],"o":[[-1.199,0.16],[-0.026,-0.192],[0,0],[-0.16,-1.199],[0.192,-0.026],[0,0],[1.243,-0.116],[0.013,0.14],[0,0],[0.116,1.243],[-0.14,0.013],[0,0]],"v":[[-7.978,53.903],[-10.438,52.021],[-10.438,51.443],[-10.438,-51.487],[-8.556,-53.947],[-7.978,-53.947],[8.022,-53.947],[10.482,-51.907],[10.482,-51.487],[10.482,51.393],[8.442,53.853],[8.022,53.853]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[514.948,369.317],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":2,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,4],[0,0],[4,0],[0,0],[0,0]],"o":[[4,0],[0,0],[0,-4],[0,0],[0,0],[0,0]],"v":[[4.618,1.464],[10.778,-4.696],[10.778,-27.946],[4.618,-34.106],[-10.782,-34.106],[-10.782,1.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[5.7,-3.54],[0,0],[1.69,0],[0,0],[0.137,1.315],[0,0],[0,0],[0,0],[1.245,-0.152],[0.144,0.01],[0,0],[0.116,1.242],[-0.013,0.139],[0,0],[-1.242,0.116],[-0.14,-0.013],[0,0],[0,-14.48]],"o":[[0,8.93],[0,0],[0.46,1.85],[0,0],[-1.317,0.116],[0,0],[0,0],[0,0],[0.152,1.244],[-0.143,0.017],[0,0],[-1.243,0.116],[-0.013,-0.14],[0,0],[-0.116,-1.243],[0.14,-0.013],[0,0],[14.48,0],[0,0]],"v":[[30.798,-0.846],[22.168,17.944],[30.168,51.054],[28.018,53.824],[12.918,53.824],[10.298,51.664],[2.908,21.334],[-10.792,21.334],[-10.792,51.334],[-12.77,53.863],[-13.202,53.874],[-28.302,53.874],[-30.762,51.834],[-30.762,51.414],[-30.762,-51.516],[-28.722,-53.976],[-28.302,-53.976],[8.698,-53.976],[30.878,-31.796]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[458.272,369.346],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":4,"cix":2,"bm":0,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,3.85],[0,0],[4.16,0],[0,0],[0,0]],"o":[[4.16,0],[0,0],[0,-4],[0,0],[0,0],[0,0]],"v":[[3.728,-0.052],[9.888,-6.211],[9.888,-35.211],[3.728,-41.371],[-9.822,-41.371],[-9.822,-0.102]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-1.242,0.116],[-0.139,-0.013],[0,0],[0,-14.48],[0,0],[14.48,0],[0,0],[0,0],[1.199,-0.16],[0.192,0.026],[0,0],[0.116,1.242],[-0.013,0.139]],"o":[[-0.116,-1.243],[0.14,-0.013],[0,0],[14.48,0],[0,0],[0,14.32],[0,0],[0,0],[0.16,1.199],[-0.192,0.026],[0,0],[-1.243,0.116],[-0.013,-0.14],[0,0]],"v":[[-30.762,-59.191],[-28.722,-61.651],[-28.302,-61.651],[8.698,-61.651],[30.878,-39.471],[30.878,-1.901],[8.698,20.279],[-9.822,20.279],[-9.822,59.089],[-11.704,61.548],[-12.282,61.548],[-28.282,61.548],[-30.742,59.509],[-30.742,59.089]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[381.272,361.621],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":4,"cix":2,"bm":0,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.115,-1.249],[0.012,-0.136],[0,0],[1.249,-0.11],[0.136,0.013],[0,0],[0.357,1.226],[0,0],[0,0],[1.199,-0.16],[0.192,0.026],[0,0],[0.116,1.243],[-0.013,0.139],[0,0],[-1.242,0.116],[-0.14,-0.013],[0,0],[-0.353,-1.225],[0,0],[0,0],[-1.205,0.154],[-0.188,-0.025]],"o":[[1.248,-0.115],[0.013,0.135],[0,0],[0.11,1.249],[-0.135,0.012],[0,0],[-1.276,0.051],[0,0],[0,0],[0.16,1.199],[-0.192,0.026],[0,0],[-1.243,0.116],[-0.013,-0.139],[0,0],[-0.116,-1.243],[0.14,-0.013],[0,0],[1.273,-0.05],[0,0],[0,0],[-0.154,-1.205],[0.188,-0.024],[0,0]],"v":[[30.413,-53.9],[32.882,-51.848],[32.883,-51.44],[32.883,51.44],[30.821,53.901],[30.413,53.9],[18.253,53.9],[15.473,51.9],[-13.477,-6.93],[-13.477,51.44],[-15.359,53.9],[-15.937,53.9],[-30.417,53.9],[-32.877,51.859],[-32.877,51.44],[-32.877,-51.44],[-30.837,-53.9],[-30.417,-53.9],[-18.247,-53.9],[-15.477,-51.9],[13.473,6.95],[13.473,-51.44],[15.376,-53.901],[15.943,-53.9]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[263.727,369.27],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":2,"cix":2,"bm":0,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.84,0],[0,0],[0,0],[0,0],[-0.094,-1.272],[0.022,-0.162],[0,0],[1.264,-0.175],[0.163,0.012],[0,0],[0,0],[0,0],[0,-1.7],[0,0],[1.84,0],[0,0],[0.051,1.23],[-0.011,0.108],[0,0],[-1.225,0.128],[-0.108,-0.004],[0,0],[0,-1.54]],"o":[[0,1.54],[0,0],[0,0],[0,0],[1.272,-0.095],[0.013,0.163],[0,0],[0.175,1.264],[-0.162,0.022],[0,0],[0,0],[0,0],[1.84,0],[0,0],[0,1.54],[0,0],[-1.231,0.051],[-0.005,-0.108],[0,0],[-0.128,-1.225],[0.108,-0.011],[0,0],[1.84,0],[0,0]],"v":[[30.789,-36.068],[28.329,-33.448],[-9.671,-33.448],[-9.671,-9.728],[19.279,-9.728],[21.754,-7.596],[21.739,-7.108],[21.739,8.132],[19.767,10.737],[19.279,10.751],[-9.711,10.751],[-9.711,33.542],[28.289,33.542],[30.749,36.012],[30.749,51.411],[28.289,53.872],[-28.351,53.872],[-30.671,51.736],[-30.661,51.411],[-30.661,-51.458],[-28.675,-53.909],[-28.351,-53.918],[28.329,-53.918],[30.789,-51.458]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[184.661,369.288],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 24","np":2,"cix":2,"bm":0,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,3.85],[0,0],[4.16,0],[0,0],[0,0]],"o":[[4.16,0],[0,0],[0,-4],[0,0],[0,0],[0,0]],"v":[[4.655,0.689],[10.815,-5.471],[10.815,-27.951],[4.655,-34.111],[-10.745,-33.961],[-10.745,0.869]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-1.249,0.11],[-0.136,-0.013],[0,0],[0,-14.48],[0,0],[14.47,-0.18],[0,0],[0,0],[1.199,-0.16],[0.192,0.026],[0,0],[0.115,1.249],[-0.012,0.136]],"o":[[-0.11,-1.249],[0.135,-0.012],[0,0],[14.47,0],[0,0],[0,14.32],[0,0],[0,0],[0.16,1.199],[-0.192,0.026],[0,0],[-1.248,0.115],[-0.013,-0.135],[0,0]],"v":[[-30.765,-51.521],[-28.703,-53.982],[-28.295,-53.981],[8.705,-53.981],[30.875,-31.801],[30.875,-1.621],[8.705,20.559],[-10.705,20.709],[-10.705,51.509],[-12.587,53.969],[-13.165,53.969],[-28.295,53.869],[-30.764,51.817],[-30.765,51.409]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[107.765,369.351],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":4,"cix":2,"bm":0,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,4.16],[0,0],[4,0],[0,0],[0,-4.01],[0,0],[-4.01,0]],"o":[[4,0],[0,0],[0,-4],[0,0],[-4,0],[0,0],[0,4.16],[0,0]],"v":[[4.78,41.73],[10.94,35.57],[10.94,-35.57],[4.78,-41.73],[-4.15,-41.73],[-10.31,-35.57],[-10.31,35.57],[-4.15,41.73]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-14.48,0],[0,0],[0,-14.48],[0,0],[14.47,0],[0,0],[0,14.48]],"o":[[0,-14.48],[0,0],[14.47,0],[0,0],[0,14.48],[0,0],[-14.48,0],[0,0]],"v":[[-30.8,-39.42],[-8.62,-61.6],[8.63,-61.6],[30.8,-39.42],[30.8,39.42],[8.63,61.6],[-8.62,61.6],[-30.8,39.42]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.8,361.57],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 26","np":4,"cix":2,"bm":0,"ix":26,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.044,-4.475],[-4.467,-0.071],[0,0],[0.107,4.483],[4.268,0.186],[0,0]],"o":[[-0.039,4.467],[0,0],[4.483,-0.107],[-0.101,-4.271],[0,0],[-4.475,-0.039]],"v":[[-19.731,-0.186],[-11.731,8.015],[11.739,8.255],[19.663,-0.056],[11.899,-7.975],[-11.551,-8.215]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[196.621,122.735],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 27","np":2,"cix":2,"bm":0,"ix":27,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.68,0.07],[-0.08,7.68],[-5.69,-0.06],[0.08,-7.66]],"o":[[-5.69,-0.05],[0.08,-7.68],[5.69,0.06],[-0.08,7.66]],"v":[[-13.98,14.03],[-24.12,0.03],[-13.69,-13.78],[-3.55,0.22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.056,7.033],[-7.043,-0.072],[0,0],[1.184,0.02],[0,0],[0.24,-23.76],[-0.62,0],[0,0],[-0.079,1.182],[0,0]],"o":[[0.077,-7.043],[0,0],[-0.053,-1.183],[0,0],[-0.62,0],[-0.24,23.76],[0,0],[1.185,0.008],[0,0],[-7.033,-0.082]],"v":[[17.83,0.75],[30.72,-11.87],[34.62,-11.87],[32.42,-14.01],[-16.98,-23.79],[-34.38,-0.12],[-17.46,23.88],[32.11,15.71],[34.36,13.62],[30.45,13.62]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.43,121.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 28","np":4,"cix":2,"bm":0,"ix":28,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4,-5.01],[0,0],[0,0],[0,0],[7.28,-6.04],[1.07,-0.86],[0,0],[0,0],[0,0],[8.231,-4.067],[0,0],[0,0],[0,0],[9.351,-1.941],[0,0],[0,0],[0,0],[6.22,0],[6.127,0.513],[0,0],[0,0],[0,0],[9.001,3.191],[0,0],[0,0],[0,0],[7.686,5.005],[0,0],[0,0],[0,0],[1.07,0.88],[5.72,5.78],[0,0],[0,0],[0,0],[0,0],[-7.059,6.886],[0,0],[0,0],[0,0],[-8.734,5.45],[0,0],[0,0],[0,0],[-9.276,2.975],[0,0],[0,0],[0,0],[-9.237,0.536],[0,0],[0,0],[0,0],[-9.091,-1.722],[0,0],[0,0],[0,0],[-8.79,-4.197],[0,0],[0,0],[0,0],[-7.988,-6.444],[0,0],[0,0],[0,0],[-8.901,-12.399]],"o":[[0,0],[0,0],[0,0],[-5.72,5.77],[-1.07,0.88],[0,0],[0,0],[0,0],[-7.696,5.006],[0,0],[0,0],[0,0],[-9.001,3.193],[0,0],[0,0],[0,0],[-6.12,0.513],[-6.22,0],[0,0],[0,0],[0,0],[-9.351,-1.943],[0,0],[0,0],[0,0],[-8.22,-4.068],[0,0],[0,0],[0,0],[-1.07,-0.86],[-7.28,-6],[0,0],[0,0],[0,0],[0,0],[6.264,-7.616],[0,0],[0,0],[0,0],[8.017,-6.459],[0,0],[0,0],[0,0],[8.79,-4.197],[0,0],[0,0],[0,0],[9.091,-1.721],[0,0],[0,0],[0,0],[9.237,0.536],[0,0],[0,0],[0,0],[9.276,2.975],[0,0],[0,0],[0,0],[8.704,5.438],[0,0],[0,0],[0,0],[10.947,10.636],[-2.12,3.03]],"v":[[185.389,12.24],[172.978,0.63],[155.278,19.54],[168.009,31.46],[148.499,49.34],[145.278,51.95],[135.389,37.63],[114.059,52.32],[124.298,67.2],[100.389,80.82],[93.279,62.66],[69.159,72.11],[76.519,90.92],[48.959,98.63],[45.029,78.3],[19.589,83.23],[23.389,102.36],[4.879,103.13],[-13.641,102.36],[-9.931,83.23],[-35.361,78.3],[-39.301,98.63],[-66.861,90.92],[-59.501,72.11],[-83.621,62.66],[-90.731,80.82],[-114.611,67.2],[-104.361,52.32],[-125.701,37.63],[-135.611,51.98],[-138.831,49.37],[-158.341,31.49],[-145.611,19.54],[-163.311,0.63],[-175.491,12.03],[-175.221,-12.86],[-155.221,-34.63],[-146.221,-22.44],[-125.371,-37.81],[-135.761,-51.9],[-110.611,-69.78],[-103.241,-54.93],[-80.032,-66.44],[-87.871,-82.25],[-60.741,-93.02],[-56.382,-77.02],[-31.382,-83.81],[-35.611,-99.39],[-8.091,-102.78],[-8.091,-86.78],[17.819,-86.78],[17.819,-102.78],[45.339,-99.39],[41.098,-83.77],[66.099,-76.98],[70.458,-92.98],[97.589,-82.21],[89.749,-66.4],[112.958,-54.89],[120.329,-69.74],[145.389,-51.9],[135.009,-37.81],[155.848,-22.44],[164.848,-34.63],[194.678,-0.01]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[34.72,28.94],[39.34,0],[32.16,-26.8],[12.444,-15.739],[0,0],[0.016,-1.404],[0,0],[0,0],[0,0],[0.061,-6.794],[6.777,0.017],[0,0],[0,0],[0,0],[0,0],[-1.403,-0.017],[-0.007,0],[0,0],[-15.299,-12.748],[-39.35,0],[-32.17,26.8],[-0.74,1.21],[0,0]],"o":[[-0.74,-1.21],[-58.27,-48.55],[-71.29,0],[-15.408,12.851],[0,0],[-1.404,-0.011],[0,0],[0,0],[0,0],[6.794,0.082],[-0.055,6.777],[0,0],[0,0],[0,0],[0,0],[-0.017,1.403],[0.007,0],[0,0],[12.382,15.597],[58.27,48.55],[71.28,0],[34.72,-28.93],[0,0],[0,0]],"v":[[214.868,-5.14],[161.569,-64.02],[4.829,-122.76],[-151.921,-64.02],[-193.811,-21.02],[-214.961,-27.07],[-217.531,-24.55],[-217.611,-12.79],[-217.611,-12.35],[-203.031,-12.2],[-190.851,0.24],[-203.201,12.46],[-203.321,12.46],[-217.901,12.31],[-217.901,12.73],[-218.021,24.53],[-215.511,27.1],[-215.491,27.1],[-193.541,21.39],[-151.911,64.02],[4.839,122.76],[161.578,64.02],[214.879,5.15],[218.038,0.02]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[411.681,122.76],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 29","np":6,"cix":2,"bm":0,"ix":29,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-8.69],[18.64,0],[0,18.64],[-19.25,0],[-6.83,-6.83]],"o":[[0,18.64],[-19.25,0],[0,-18.64],[9.94,0],[4.98,6.2]],"v":[[34.48,-0.015],[0.3,33.535],[-34.48,-0.015],[0.3,-33.535],[0.3,0.005]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[416.51,122.755],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 30","np":2,"cix":2,"bm":0,"ix":30,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[32.62,0],[0,-31.59],[-32.97,0],[0,31.59]],"o":[[-33,0],[0,31.59],[32.62,0],[0,-31.59]],"v":[[0.315,-57.295],[-59.465,0.005],[0.315,57.295],[59.465,0.005]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.690196078431,0.611764705882,0.737254901961,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[416.505,122.745],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 31","np":2,"cix":2,"bm":0,"ix":31,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[43.42,0],[0,42.4],[-43.77,0],[0,-42.4]],"o":[[-43.77,0],[0,-42.4],[43.42,0],[0,42.4]],"v":[[0.315,76.895],[-79.065,0.005],[0.315,-76.895],[79.065,0.005]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.207843152214,0.341176470588,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[416.505,122.745],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 32","np":2,"cix":2,"bm":0,"ix":32,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":130.000005295009,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Artwork 76 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[621.082,830,0],"ix":2,"l":2},"a":{"a":0,"k":[373,76,0],"ix":1,"l":2},"s":{"a":0,"k":[88,88,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[30.693,-8.335],[-30.487,-8.335],[-30.487,11.274],[30.693,11.274]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[30.693,11.274]],"c":false},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[56.574,-69.704],[56.574,69.704],[30.693,69.704],[30.693,36.365],[-30.487,36.365],[-30.487,69.704],[-56.574,69.704],[-56.574,-69.704],[-30.487,-69.704],[-30.487,-33.426],[30.693,-33.426],[30.693,-69.704]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.392156892664,0.192156877705,0.486274539723,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[689.241,75.377],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[24.902,0],[9.212,3.728],[6.273,6.479],[3.728,8.437],[0,9.607],[-3.919,8.816],[-6.668,6.652],[-8.627,3.728],[-9.796,0],[0,0],[0,0],[27.051,0],[8.816,-8.816],[0,-12.561],[-8.627,-8.422],[-12.751,0],[0,0],[0,0]],"o":[[-9.606,0],[-9.022,-3.919],[-6.858,-6.668],[-3.73,-9.211],[0,-9.811],[3.524,-8.816],[6.668,-6.668],[9.022,-3.73],[27.051,0],[0,0],[0,0],[-12.751,0],[-8.627,8.437],[0,12.357],[8.816,8.437],[30.986,0],[0,0],[0.015,0]],"v":[[15.784,72.65],[-12.451,66.964],[-35.583,51.272],[-51.462,28.331],[-57.151,0.094],[-51.273,-28.141],[-35.788,-51.273],[-12.656,-66.962],[15.768,-72.65],[57.135,-59.71],[57.135,-26.577],[15.768,-45.79],[-17.76,-32.265],[-31.285,0.094],[-17.76,32.249],[15.768,45.585],[57.135,28.141],[57.135,59.71]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.392156892664,0.192156877705,0.486274539723,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[552.006,75.763],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[12.641,-43.823],[12.641,-28.923],[58.921,-28.923],[58.921,-6.564],[12.641,-6.564],[12.641,69.704],[-12.846,69.704],[-12.846,-6.564],[-58.921,-6.564],[-58.921,-28.923],[-12.846,-28.923],[-12.846,-43.823],[-58.921,-43.823],[-58.921,-69.704],[58.921,-69.704],[58.921,-43.823]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.392156892664,0.192156877705,0.486274539723,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[412.424,75.376],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-0.593,-13.532],[-36.87,75.677],[-98.034,-70.209],[-70.589,-70.209],[-35.496,9.994],[-0.008,-75.882],[37.25,9.015],[69.799,-70.193],[98.034,-70.193],[36.665,75.882]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.392156892664,0.192156877705,0.486274539723,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233.903,75.882],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[24.902,0],[9.212,3.728],[6.273,6.479],[3.728,8.437],[0,9.607],[-3.919,8.816],[-6.668,6.652],[-8.627,3.728],[-9.796,0],[0,0],[0,0],[27.051,0],[8.816,-8.816],[0,-12.561],[-8.627,-8.422],[-12.751,0],[0,0],[0,0]],"o":[[-9.606,0],[-9.022,-3.919],[-6.858,-6.668],[-3.73,-9.211],[0,-9.811],[3.524,-8.816],[6.668,-6.668],[9.022,-3.73],[27.051,0],[0,0],[0,0],[-12.751,0],[-8.627,8.437],[0,12.357],[8.816,8.437],[30.986,0],[0,0],[0.031,0]],"v":[[15.776,72.65],[-12.459,66.964],[-35.591,51.272],[-51.47,28.331],[-57.159,0.094],[-51.281,-28.141],[-35.796,-51.273],[-12.664,-66.962],[15.76,-72.65],[57.127,-59.71],[57.127,-26.577],[15.76,-45.79],[-17.768,-32.265],[-31.293,0.094],[-17.768,32.249],[15.76,45.585],[57.127,28.141],[57.127,59.71]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.392156892664,0.192156877705,0.486274539723,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[57.158,75.763],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":130.000005295009,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[621,1104,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[80.75,0],[0,0],[-65.75,0],[0,0]],"o":[[-80.75,0],[0,0],[65.75,0],[0,0]],"v":[[-2.25,478],[-114.25,541],[0,604.75],[115.25,543]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.984313785329,0.945098099054,0.968627510819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":130.000005295009,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Comp 1","refId":"comp_0","sr":0.75,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[621,510,0],"ix":2,"l":2},"a":{"a":0,"k":[255,255,0],"ix":1,"l":2},"s":{"a":0,"k":[74,74,100],"ix":6,"l":2}},"ao":0,"w":510,"h":510,"ip":73.000002973351,"op":132.00000537647,"st":73.000002973351,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"Comp 1","refId":"comp_0","sr":0.75,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[621,510,0],"ix":2,"l":2},"a":{"a":0,"k":[255,255,0],"ix":1,"l":2},"s":{"a":0,"k":[74,74,100],"ix":6,"l":2}},"ao":0,"w":510,"h":510,"ip":0,"op":73.000002973351,"st":-53.0000021587343,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/assets/Open_Privacy_Logo_lightoutline.png b/assets/Open_Privacy_Logo_lightoutline.png new file mode 100644 index 0000000..9a34aa6 Binary files /dev/null and b/assets/Open_Privacy_Logo_lightoutline.png differ diff --git a/assets/cwtch_title.png b/assets/cwtch_title.png new file mode 100644 index 0000000..a964741 Binary files /dev/null and b/assets/cwtch_title.png differ diff --git a/lib/cwtch/cwtch.dart b/lib/cwtch/cwtch.dart index 3e866da..30ce4de 100644 --- a/lib/cwtch/cwtch.dart +++ b/lib/cwtch/cwtch.dart @@ -2,7 +2,7 @@ import 'package:flutter/src/services/text_input.dart'; abstract class Cwtch { // ignore: non_constant_identifier_names - Future Start(); + Future Start(); // ignore: non_constant_identifier_names Future ReconnectCwtchForeground(); @@ -31,11 +31,6 @@ abstract class Cwtch { // ignore: non_constant_identifier_names void DebugResetContact(String profileOnion, String contactHandle); - // ignore: non_constant_identifier_names - Future ACNEvents(); - // ignore: non_constant_identifier_names - Future ContactEvents(); - // ignore: non_constant_identifier_names Future GetProfiles(); @@ -67,5 +62,8 @@ abstract class Cwtch { // ignore: non_constant_identifier_names void RejectInvite(String profileOnion, String groupHandle); + // ignore: non_constant_identifier_names + void Shutdown(); + void dispose(); } diff --git a/lib/cwtch/cwtchNotifier.dart b/lib/cwtch/cwtchNotifier.dart index 05dc60e..a8bb81a 100644 --- a/lib/cwtch/cwtchNotifier.dart +++ b/lib/cwtch/cwtchNotifier.dart @@ -17,17 +17,25 @@ class CwtchNotifier { late ErrorHandler error; late TorStatus torStatus; late NotificationsManager notificationManager; + late AppState appState; - CwtchNotifier(ProfileListState pcn, Settings settingsCN, ErrorHandler errorCN, TorStatus torStatusCN, NotificationsManager notificationManagerP) { + CwtchNotifier(ProfileListState pcn, Settings settingsCN, ErrorHandler errorCN, TorStatus torStatusCN, NotificationsManager notificationManagerP, AppState appStateCN) { profileCN = pcn; settings = settingsCN; error = errorCN; torStatus = torStatusCN; notificationManager = notificationManagerP; + appState = appStateCN; } void handleMessage(String type, dynamic data) { switch (type) { + case "CwtchStarted": + appState.SetCwtchInit(); + break; + case "CwtchStartError": + appState.SetAppError(data["Error"]); + break; case "NewPeer": profileCN.add(ProfileInfoState( onion: data["Identity"], nickname: data["name"], imagePath: data["picture"], contactsJson: data["ContactsJson"], serversJson: data["ServerList"], online: data["Online"] == "true")); diff --git a/lib/cwtch/ffi.dart b/lib/cwtch/ffi.dart index c0f7225..595c208 100644 --- a/lib/cwtch/ffi.dart +++ b/lib/cwtch/ffi.dart @@ -19,6 +19,9 @@ import '../config.dart'; typedef start_cwtch_function = Int8 Function(Pointer str, Int32 length, Pointer str2, Int32 length2); typedef StartCwtchFn = int Function(Pointer dir, int len, Pointer tor, int torLen); +typedef void_from_void_funtion = Void Function(); +typedef VoidFromVoidFunction = void Function(); + typedef void_from_string_string_function = Void Function(Pointer, Int32, Pointer, Int32); typedef VoidFromStringStringFn = void Function(Pointer, int, Pointer, int); @@ -58,13 +61,14 @@ typedef GetJsonBlobFromStrStrIntFn = Pointer Function(Pointer, int, typedef get_json_blob_from_str_str_int_int_function = Pointer Function(Pointer, Int32, Pointer, Int32, Int32, Int32); typedef GetJsonBlobFromStrStrIntIntFn = Pointer Function(Pointer, int, Pointer, int, int, int); -typedef acn_events_function = Pointer Function(); -typedef ACNEventsFn = Pointer Function(); +typedef appbus_events_function = Pointer Function(); +typedef AppbusEventsFn = Pointer Function(); class CwtchFfi implements Cwtch { late DynamicLibrary library; late CwtchNotifier cwtchNotifier; late Isolate cwtchIsolate; + ReceivePort _receivePort = ReceivePort(); CwtchFfi(CwtchNotifier _cwtchNotifier) { if (Platform.isWindows) { @@ -80,7 +84,7 @@ class CwtchFfi implements Cwtch { } // ignore: non_constant_identifier_names - Future Start() async { + Future Start() async { String home = ""; String bundledTor = ""; Map envVars = Platform.environment; @@ -105,7 +109,6 @@ class CwtchFfi implements Cwtch { StartCwtch(ut8CwtchDir, ut8CwtchDir.length, bundledTor.toNativeUtf8(), bundledTor.length); // Spawn an isolate to listen to events from libcwtch-go and then dispatch them when received on main thread to cwtchNotifier - var _receivePort = ReceivePort(); cwtchIsolate = await Isolate.spawn(_checkAppbusEvents, _receivePort.sendPort); _receivePort.listen((message) { var env = jsonDecode(message); @@ -135,6 +138,7 @@ class CwtchFfi implements Cwtch { await for (var value in stream) { sendPort.send(value); } + print("checkAppBusEvents finished..."); } // Steam of appbus events. Call blocks in libcwtch-go GetAppbusEvent. Static so the isolate can use it @@ -146,13 +150,18 @@ class CwtchFfi implements Cwtch { library = DynamicLibrary.open("libCwtch.so"); } - var getAppbusEventC = library.lookup>("c_GetAppBusEvent"); + var getAppbusEventC = library.lookup>("c_GetAppBusEvent"); // ignore: non_constant_identifier_names - final GetAppbusEvent = getAppbusEventC.asFunction(); + final GetAppbusEvent = getAppbusEventC.asFunction(); while (true) { Pointer result = GetAppbusEvent(); String event = result.toDartString(); + + if (event.startsWith("{\"EventType\":\"Shutdown\"")) { + print("Shutting down isolate thread: $event"); + return; + } yield event; } } @@ -185,28 +194,6 @@ class CwtchFfi implements Cwtch { LoadProfiles(ut8pass, ut8pass.length); } - // ignore: non_constant_identifier_names - Future ACNEvents() async { - var acnEventsC = library.lookup>("c_ACNEvents"); - // ignore: non_constant_identifier_names - final ACNEvents = acnEventsC.asFunction(); - - Pointer result = ACNEvents(); - String event = result.toDartString(); - return event; - } - - // ignore: non_constant_identifier_names - Future ContactEvents() async { - var acnEventsC = library.lookup>("c_ContactEvents"); - // ignore: non_constant_identifier_names - final ContactEvents = acnEventsC.asFunction(); - - Pointer result = ContactEvents(); - String event = result.toDartString(); - return event; - } - // ignore: non_constant_identifier_names Future GetProfiles() async { var getProfilesC = library.lookup>("c_GetProfiles"); @@ -428,4 +415,21 @@ class CwtchFfi implements Cwtch { final u2 = currentPassword.toNativeUtf8(); DeleteProfile(u1, u1.length, u2, u2.length); } + + @override + Future Shutdown() async { + var shutdown = library.lookup>("c_ShutdownCwtch"); + // ignore: non_constant_identifier_names + + // Shutdown Cwtch + Tor... + final Shutdown = shutdown.asFunction(); + Shutdown(); + + // Kill our Isolate + cwtchIsolate.kill(priority: Isolate.immediate); + print("Isolate killed"); + + _receivePort.close(); + print("Receive Port Closed"); + } } diff --git a/lib/cwtch/gomobile.dart b/lib/cwtch/gomobile.dart index b37ade2..9396164 100644 --- a/lib/cwtch/gomobile.dart +++ b/lib/cwtch/gomobile.dart @@ -42,7 +42,7 @@ class CwtchGomobile implements Cwtch { } // ignore: non_constant_identifier_names - Future Start() async { + Future Start() async { print("gomobile.dart: Start()..."); var cwtchDir = path.join((await androidHomeDirectory).path, ".cwtch"); if (EnvironmentConfig.BUILD_VER == dev_version) { @@ -86,17 +86,6 @@ class CwtchGomobile implements Cwtch { cwtchPlatform.invokeMethod("DeleteProfile", {"onion": onion, "pass": pass}); } - // ignore: non_constant_identifier_names - Future ACNEvents() { - return cwtchPlatform.invokeMethod("ACNEvents"); - } - - // ignore: non_constant_identifier_names - Future ContactEvents() { - return cwtchPlatform.invokeMethod("ContactEvents"); - } - - // ignore: non_constant_identifier_names Future GetProfiles() { print("gomobile.dart: GetProfiles()"); return cwtchPlatform.invokeMethod("GetProfiles"); @@ -209,4 +198,10 @@ class CwtchGomobile implements Cwtch { print("gomobile.dart UpdateMessageFlags " + index.toString()); cwtchPlatform.invokeMethod("UpdateMessageFlags", {"profile": profile, "contact": handle, "index": index, "flags": flags}); } + + @override + Future Shutdown() async { + print("gomobile.dart Shutdown"); + cwtchPlatform.invokeMethod("Shutdown", {}); + } } diff --git a/lib/l10n/intl_de.arb b/lib/l10n/intl_de.arb index 5c862eb..1ecdfc0 100644 --- a/lib/l10n/intl_de.arb +++ b/lib/l10n/intl_de.arb @@ -1,186 +1,190 @@ { "@@locale": "de", - "@@last_modified": "2021-06-15T02:08:49+02:00", - "createGroupTitle": "Gruppe Anlegen", - "serverLabel": "Server", - "groupNameLabel": "Gruppenname", - "defaultGroupName": "Tolle Gruppe", - "createGroupBtn": "Anlegen", - "profileOnionLabel": "Senden Sie diese Adresse an Peers, mit denen Sie sich verbinden möchten", - "copyBtn": "Kopieren", - "copiedToClipboardNotification": "in die Zwischenablage kopiert", - "addPeerTab": "Einen Peer hinzufügen", - "createGroupTab": "Eine Gruppe erstellen", - "joinGroupTab": "Einer Gruppe beitreten", - "peerAddress": "Adresse", - "peerName": "Namen", - "groupName": "Gruppenname", - "server": "Server", - "invitation": "Einladung", - "groupAddr": "Adresse", - "addPeer": "Peer hinzufügen", - "createGroup": "Gruppe erstellen", - "joinGroup": "Gruppe beitreten", - "newBulletinLabel": "Neue Meldung", - "postNewBulletinLabel": "Neue Meldung veröffentlichen", - "titlePlaceholder": "Titel...", + "@@last_modified": "2021-06-16T23:15:48+02:00", + "shutdownCwtchAction": "Shutdown Cwtch", + "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", + "shutdownCwtchDialogTitle": "Shutdown Cwtch?", + "shutdownCwtchTooltip": "Shutdown Cwtch", + "malformedMessage": "Malformed message", + "profileDeleteSuccess": "Successfully deleted profile", + "debugLog": "Turn on console debug logging", + "torNetworkStatus": "Tor network status", + "addContactFirst": "Add or pick a contact to begin chatting.", + "createProfileToBegin": "Please create or unlock a profile to begin", + "nickChangeSuccess": "Profile nickname changed successfully", + "addServerFirst": "You need to add a server before you can create a group", + "deleteProfileSuccess": "Successfully deleted profile", + "sendInvite": "Send a contact or group invite", + "sendMessage": "Send Message", + "cancel": "Cancel", + "resetTor": "Reset", + "torStatus": "Tor Status", + "torVersion": "Tor Version", + "sendAnInvitation": "You sent an invitation for: ", + "contactSuggestion": "This is a contact suggestion for: ", + "rejected": "Rejected!", + "accepted": "Accepted!", + "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", + "newPassword": "New Password", + "yesLeave": "Yes, Leave This Conversation", + "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", + "leaveGroup": "Leave This Conversation", + "inviteToGroup": "You have been invited to join a group:", "pasteAddressToAddContact": "Adresse hier hinzufügen, um einen Kontakt aufzunehmen", - "blocked": "Blockiert", - "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", - "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", - "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", - "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", - "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", - "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", - "search": "Suche...", - "invitationLabel": "Einladung", - "serverInfo": "Server-Informationen", - "serverConnectivityConnected": "Server verbunden", - "serverConnectivityDisconnected": "Server getrennt", - "serverSynced": "Synced", - "serverNotSynced": "Out of Sync", - "viewServerInfo": "Server Info", - "saveBtn": "speichern", - "inviteToGroupLabel": "In die Gruppe einladen", - "inviteBtn": "Einladen", - "deleteBtn": "löschen", - "update": "Update", - "searchList": "Search List", - "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", - "addListItemBtn": "Element hinzufügen", - "membershipDescription": "Unten steht eine Liste der Benutzer, die Nachrichten an die Gruppe gesendet haben. Möglicherweise enthält diese Benutzerzliste nicht alle, die Zugang zur Gruppe haben.", - "dmTooltip": "Klicken, um DM zu senden", - "couldNotSendMsgError": "Nachricht konnte nicht gesendet werden", - "acknowledgedLabel": "bestätigt", - "pendingLabel": "Bestätigung ausstehend", - "peerBlockedMessage": "Peer ist blockiert", - "peerOfflineMessage": "Peer ist offline, Nachrichten können derzeit nicht zugestellt werden", - "copiedClipboardNotification": "in die Zwischenablage kopiert", - "newGroupBtn": "Neue Gruppe anlegen", - "acceptGroupInviteLabel": "Möchtest Du die Einladung annehmen", - "acceptGroupBtn": "Annehmen", - "rejectGroupBtn": "Ablehnen", - "chatBtn": "Chat", - "listsBtn": "Listen", - "bulletinsBtn": "Meldungen", - "puzzleGameBtn": "Puzzlespiel", - "addressLabel": "Adresse", - "displayNameLabel": "Angezeigter Name", - "blockBtn": "Peer blockieren", - "savePeerHistory": "Peer-Verlauf speichern", - "savePeerHistoryDescription": "Legt fest, ob ein mit dem Peer verknüpfter Verlauf gelöscht werden soll oder nicht.", - "dontSavePeerHistory": "Peer-Verlauf löschen", - "unblockBtn": "Peer entblockieren", - "addProfileTitle": "Neues Profil hinzufügen", - "editProfileTitle": "Profil bearbeiten", - "profileName": "Anzeigename", - "defaultProfileName": "Alice", - "newProfile": "Neues Profil", - "editProfile": "Profil bearbeiten", - "radioUsePassword": "Passwort", - "radioNoPassword": "Unverschlüsselt (kein Passwort)", - "noPasswordWarning": "Wenn für dieses Konto kein Passwort verwendet wird, bedeutet dies, dass alle lokal gespeicherten Daten nicht verschlüsselt werden.", - "yourDisplayName": "Ihr Anzeigename", - "currentPasswordLabel": "derzeitiges Passwort", - "password1Label": "Passwort", - "password2Label": "Passwort erneut eingeben", - "passwordErrorEmpty": "Passwort kann nicht leer sein", - "createProfileBtn": "Profil speichern", - "saveProfileBtn": "Profil speichern", - "passwordErrorMatch": "Passwörter stimmen nicht überein", - "passwordChangeError": "Fehler beim Ändern des Passworts: Das Passwort wurde abgelehnt", - "deleteProfileBtn": "Profil löschen", - "deleteConfirmLabel": "Geben Sie LÖSCHEN zur Bestätigung ein", - "deleteProfileConfirmBtn": "Profil wirklich löschen", - "deleteConfirmText": "LÖSCHEN", - "addNewProfileBtn": "Neues Profil hinzufügen", - "enterProfilePassword": "Geben Sie ein Passwort ein, um Ihre Profile anzuzeigen", - "password": "Passwort", - "error0ProfilesLoadedForPassword": "0 Profile mit diesem Passwort geladen", - "yourProfiles": "Ihre Profile", - "yourServers": "Ihre Server", - "unlock": "Entsperren", - "cwtchSettingsTitle": "Cwtch Einstellungen", - "versionBuilddate": "Version: %1 Aufgebaut auf: %2", - "zoomLabel": "Benutzeroberflächen-Zoom (betriftt hauptsächlich Text- und Knopgrößen)", - "blockUnknownLabel": "Unbekannte Peers blockieren", - "settingLanguage": "Sprache", - "localeEn": "English", - "localeFr": "Frances", - "localePt": "Portuguesa", - "localeDe": "Deutsche", - "settingInterfaceZoom": "Zoomstufe", - "largeTextLabel": "Groß", - "settingTheme": "Thema", - "themeLight": "Licht", - "themeDark": "Dunkel", + "tooltipAddContact": "Add a new contact or conversation", + "titleManageContacts": "Conversations", + "titleManageServers": "Manage Servers", + "dateMonthsAgo": "Months Ago", + "dateNever": "Never", + "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", + "dateLastYear": "Last Year", + "dateYesterday": "Yesterday", + "dateLastMonth": "Last Month", + "dateWeeksAgo": "Weeks Ago", + "dateDaysAgo": "Days Ago", + "dateHoursAgo": "Hours Ago", + "dateMinutesAgo": "Minutes Ago", + "dateRightNow": "Right Now", + "successfullAddedContact": "Successfully added ", + "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", + "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", + "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", + "titleManageProfiles": "Manage Cwtch Profiles", + "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", + "tooltipOpenSettings": "Open the settings pane", + "invalidImportString": "Invalid import string", + "contactAlreadyExists": "Contact Already Exists", + "conversationSettings": "Conversation Settings", + "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", + "enableGroups": "Enable Group Chat", "experimentsEnabled": "Experimente aktiviert", - "versionTor": "Version %1 mit tor %2", - "version": "Version %1", - "builddate": "Aufgebaut auf: %2", - "defaultScalingText": "defaultmäßige Textgröße (Skalierungsfaktor:", - "smallTextLabel": "Klein", - "loadingTor": "Tor wird geladen...", - "viewGroupMembershipTooltip": "Gruppenmitgliedschaft anzeigen", - "networkStatusDisconnected": "Vom Internet getrennt, überprüfen Sie Ihre Verbindung", - "networkStatusAttemptingTor": "Versuche, eine Verbindung mit dem Tor-Netzwerk herzustellen", - "networkStatusConnecting": "Verbinde zu Netzwerk und Peers ...", - "networkStatusOnline": "Online", - "newConnectionPaneTitle": "Neue Verbindung", + "localeIt": "Italiana", + "localeEs": "Espanol", "addListItem": "Liste hinzufügen", "addNewItem": "Ein neues Element zur Liste hinzufügen", "todoPlaceholder": "noch zu erledigen", - "localeEs": "Espanol", - "localeIt": "Italiana", - "enableGroups": "Enable Group Chat", - "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", - "conversationSettings": "Conversation Settings", - "invalidImportString": "Invalid import string", - "contactAlreadyExists": "Contact Already Exists", - "tooltipOpenSettings": "Open the settings pane", - "tooltipAddContact": "Add a new contact or conversation", - "titleManageContacts": "Conversations", - "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", - "titleManageProfiles": "Manage Cwtch Profiles", - "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", - "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", - "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", - "successfullAddedContact": "Successfully added ", - "dateRightNow": "Right Now", - "dateMinutesAgo": "Minutes Ago", - "dateHoursAgo": "Hours Ago", - "dateDaysAgo": "Days Ago", - "dateWeeksAgo": "Weeks Ago", - "dateLastMonth": "Last Month", - "dateYesterday": "Yesterday", - "dateLastYear": "Last Year", - "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", - "dateNever": "Never", - "dateMonthsAgo": "Months Ago", - "titleManageServers": "Manage Servers", - "inviteToGroup": "You have been invited to join a group:", - "leaveGroup": "Leave This Conversation", - "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", - "yesLeave": "Yes, Leave This Conversation", - "newPassword": "New Password", - "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", - "accepted": "Accepted!", - "rejected": "Rejected!", - "contactSuggestion": "This is a contact suggestion for: ", - "sendAnInvitation": "You sent an invitation for: ", - "torVersion": "Tor Version", - "torStatus": "Tor Status", - "resetTor": "Reset", - "cancel": "Cancel", - "sendMessage": "Send Message", - "sendInvite": "Send a contact or group invite", - "deleteProfileSuccess": "Successfully deleted profile", - "addServerFirst": "You need to add a server before you can create a group", - "nickChangeSuccess": "Profile nickname changed successfully", - "createProfileToBegin": "Please create or unlock a profile to begin", - "addContactFirst": "Add or pick a contact to begin chatting.", - "torNetworkStatus": "Tor network status", - "debugLog": "Turn on console debug logging", - "profileDeleteSuccess": "Successfully deleted profile", - "malformedMessage": "Malformed message" + "newConnectionPaneTitle": "Neue Verbindung", + "networkStatusOnline": "Online", + "networkStatusConnecting": "Verbinde zu Netzwerk und Peers ...", + "networkStatusAttemptingTor": "Versuche, eine Verbindung mit dem Tor-Netzwerk herzustellen", + "networkStatusDisconnected": "Vom Internet getrennt, überprüfen Sie Ihre Verbindung", + "viewGroupMembershipTooltip": "Gruppenmitgliedschaft anzeigen", + "loadingTor": "Tor wird geladen...", + "smallTextLabel": "Klein", + "defaultScalingText": "defaultmäßige Textgröße (Skalierungsfaktor:", + "builddate": "Aufgebaut auf: %2", + "version": "Version %1", + "versionTor": "Version %1 mit tor %2", + "themeDark": "Dunkel", + "themeLight": "Licht", + "settingTheme": "Thema", + "largeTextLabel": "Groß", + "settingInterfaceZoom": "Zoomstufe", + "localeDe": "Deutsche", + "localePt": "Portuguesa", + "localeFr": "Frances", + "localeEn": "English", + "settingLanguage": "Sprache", + "blockUnknownLabel": "Unbekannte Peers blockieren", + "zoomLabel": "Benutzeroberflächen-Zoom (betriftt hauptsächlich Text- und Knopgrößen)", + "versionBuilddate": "Version: %1 Aufgebaut auf: %2", + "cwtchSettingsTitle": "Cwtch Einstellungen", + "unlock": "Entsperren", + "yourServers": "Ihre Server", + "yourProfiles": "Ihre Profile", + "error0ProfilesLoadedForPassword": "0 Profile mit diesem Passwort geladen", + "password": "Passwort", + "enterProfilePassword": "Geben Sie ein Passwort ein, um Ihre Profile anzuzeigen", + "addNewProfileBtn": "Neues Profil hinzufügen", + "deleteConfirmText": "LÖSCHEN", + "deleteProfileConfirmBtn": "Profil wirklich löschen", + "deleteConfirmLabel": "Geben Sie LÖSCHEN zur Bestätigung ein", + "deleteProfileBtn": "Profil löschen", + "passwordChangeError": "Fehler beim Ändern des Passworts: Das Passwort wurde abgelehnt", + "passwordErrorMatch": "Passwörter stimmen nicht überein", + "saveProfileBtn": "Profil speichern", + "createProfileBtn": "Profil speichern", + "passwordErrorEmpty": "Passwort kann nicht leer sein", + "password2Label": "Passwort erneut eingeben", + "password1Label": "Passwort", + "currentPasswordLabel": "derzeitiges Passwort", + "yourDisplayName": "Ihr Anzeigename", + "profileOnionLabel": "Senden Sie diese Adresse an Peers, mit denen Sie sich verbinden möchten", + "noPasswordWarning": "Wenn für dieses Konto kein Passwort verwendet wird, bedeutet dies, dass alle lokal gespeicherten Daten nicht verschlüsselt werden.", + "radioNoPassword": "Unverschlüsselt (kein Passwort)", + "radioUsePassword": "Passwort", + "copiedToClipboardNotification": "in die Zwischenablage kopiert", + "copyBtn": "Kopieren", + "editProfile": "Profil bearbeiten", + "newProfile": "Neues Profil", + "defaultProfileName": "Alice", + "profileName": "Anzeigename", + "editProfileTitle": "Profil bearbeiten", + "addProfileTitle": "Neues Profil hinzufügen", + "deleteBtn": "löschen", + "unblockBtn": "Peer entblockieren", + "dontSavePeerHistory": "Peer-Verlauf löschen", + "savePeerHistoryDescription": "Legt fest, ob ein mit dem Peer verknüpfter Verlauf gelöscht werden soll oder nicht.", + "savePeerHistory": "Peer-Verlauf speichern", + "blockBtn": "Peer blockieren", + "saveBtn": "speichern", + "displayNameLabel": "Angezeigter Name", + "addressLabel": "Adresse", + "puzzleGameBtn": "Puzzlespiel", + "bulletinsBtn": "Meldungen", + "listsBtn": "Listen", + "chatBtn": "Chat", + "rejectGroupBtn": "Ablehnen", + "acceptGroupBtn": "Annehmen", + "acceptGroupInviteLabel": "Möchtest Du die Einladung annehmen", + "newGroupBtn": "Neue Gruppe anlegen", + "copiedClipboardNotification": "in die Zwischenablage kopiert", + "peerOfflineMessage": "Peer ist offline, Nachrichten können derzeit nicht zugestellt werden", + "peerBlockedMessage": "Peer ist blockiert", + "pendingLabel": "Bestätigung ausstehend", + "acknowledgedLabel": "bestätigt", + "couldNotSendMsgError": "Nachricht konnte nicht gesendet werden", + "dmTooltip": "Klicken, um DM zu senden", + "membershipDescription": "Unten steht eine Liste der Benutzer, die Nachrichten an die Gruppe gesendet haben. Möglicherweise enthält diese Benutzerzliste nicht alle, die Zugang zur Gruppe haben.", + "addListItemBtn": "Element hinzufügen", + "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", + "searchList": "Search List", + "update": "Update", + "inviteBtn": "Einladen", + "inviteToGroupLabel": "In die Gruppe einladen", + "groupNameLabel": "Gruppenname", + "viewServerInfo": "Server Info", + "serverNotSynced": "Out of Sync", + "serverSynced": "Synced", + "serverConnectivityDisconnected": "Server getrennt", + "serverConnectivityConnected": "Server verbunden", + "serverInfo": "Server-Informationen", + "invitationLabel": "Einladung", + "serverLabel": "Server", + "search": "Suche...", + "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", + "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", + "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", + "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", + "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", + "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", + "blocked": "Blockiert", + "titlePlaceholder": "Titel...", + "postNewBulletinLabel": "Neue Meldung veröffentlichen", + "newBulletinLabel": "Neue Meldung", + "joinGroup": "Gruppe beitreten", + "createGroup": "Gruppe erstellen", + "addPeer": "Peer hinzufügen", + "groupAddr": "Adresse", + "invitation": "Einladung", + "server": "Server", + "groupName": "Gruppenname", + "peerName": "Namen", + "peerAddress": "Adresse", + "joinGroupTab": "Einer Gruppe beitreten", + "createGroupTab": "Eine Gruppe erstellen", + "addPeerTab": "Einen Peer hinzufügen", + "createGroupBtn": "Anlegen", + "defaultGroupName": "Tolle Gruppe", + "createGroupTitle": "Gruppe Anlegen" } \ No newline at end of file diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index d4c68f5..6b0d305 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -1,186 +1,190 @@ { "@@locale": "en", - "@@last_modified": "2021-06-15T02:08:49+02:00", - "createGroupTitle": "Create Group", - "serverLabel": "Server", - "groupNameLabel": "Group Name", - "defaultGroupName": "Awesome Group", - "createGroupBtn": "Create", - "profileOnionLabel": "Send this address to peers you want to connect with", - "copyBtn": "Copy", - "copiedToClipboardNotification": "Copied to Clipboard", - "addPeerTab": "Add a peer", - "createGroupTab": "Create a group", - "joinGroupTab": "Join a group", - "peerAddress": "Address", - "peerName": "Name", - "groupName": "Group name", - "server": "Server", - "invitation": "Invitation", - "groupAddr": "Address", - "addPeer": "Add Peer", - "createGroup": "Create group", - "joinGroup": "Join group", - "newBulletinLabel": "New Bulletin", - "postNewBulletinLabel": "Post new bulletin", - "titlePlaceholder": "title...", + "@@last_modified": "2021-06-16T23:15:48+02:00", + "shutdownCwtchAction": "Shutdown Cwtch", + "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", + "shutdownCwtchDialogTitle": "Shutdown Cwtch?", + "shutdownCwtchTooltip": "Shutdown Cwtch", + "malformedMessage": "Malformed message", + "profileDeleteSuccess": "Successfully deleted profile", + "debugLog": "Turn on console debug logging", + "torNetworkStatus": "Tor network status", + "addContactFirst": "Add or pick a contact to begin chatting.", + "createProfileToBegin": "Please create or unlock a profile to begin", + "nickChangeSuccess": "Profile nickname changed successfully", + "addServerFirst": "You need to add a server before you can create a group", + "deleteProfileSuccess": "Successfully deleted profile", + "sendInvite": "Send a contact or group invite", + "sendMessage": "Send Message", + "cancel": "Cancel", + "resetTor": "Reset", + "torStatus": "Tor Status", + "torVersion": "Tor Version", + "sendAnInvitation": "You sent an invitation for: ", + "contactSuggestion": "This is a contact suggestion for: ", + "rejected": "Rejected!", + "accepted": "Accepted!", + "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", + "newPassword": "New Password", + "yesLeave": "Yes, Leave This Conversation", + "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", + "leaveGroup": "Leave This Conversation", + "inviteToGroup": "You have been invited to join a group:", "pasteAddressToAddContact": "Paste a cwtch address, invitation or key bundle here to add a new conversation", - "blocked": "Blocked", - "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", - "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", - "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", - "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", - "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", - "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", - "search": "Search...", - "invitationLabel": "Invitation", - "serverInfo": "Server Information", - "serverConnectivityConnected": "Server Connected", - "serverConnectivityDisconnected": "Server Disconnected", - "serverSynced": "Synced", - "serverNotSynced": "Out of Sync", - "viewServerInfo": "Server Info", - "saveBtn": "Save", - "inviteToGroupLabel": "Invite to group", - "inviteBtn": "Invite", - "deleteBtn": "Delete", - "update": "Update", - "searchList": "Search List", - "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", - "addListItemBtn": "Add Item", - "membershipDescription": "Below is a list of users who have sent messages to the group. This list may not reflect all users who have access to the group.", - "dmTooltip": "Click to DM", - "couldNotSendMsgError": "Could not send this message", - "acknowledgedLabel": "Acknowledged", - "pendingLabel": "Pending", - "peerBlockedMessage": "Peer is blocked", - "peerOfflineMessage": "Peer is offline, messages can't be delivered right now", - "copiedClipboardNotification": "Copied to clipboard", - "newGroupBtn": "Create new group", - "acceptGroupInviteLabel": "Do you want to accept the invitation to", - "acceptGroupBtn": "Accept", - "rejectGroupBtn": "Reject", - "chatBtn": "Chat", - "listsBtn": "Lists", - "bulletinsBtn": "Bulletins", - "puzzleGameBtn": "Puzzle Game", - "addressLabel": "Address", - "displayNameLabel": "Display Name", - "blockBtn": "Block Peer", - "savePeerHistory": "Save Peer History", - "savePeerHistoryDescription": "Determines whether or not to delete any history associated with the peer.", - "dontSavePeerHistory": "Delete Peer History", - "unblockBtn": "Unblock Peer", - "addProfileTitle": "Add new profile", - "editProfileTitle": "Edit Profile", - "profileName": "Display name", - "defaultProfileName": "Alice", - "newProfile": "New Profile", - "editProfile": "Edit Profille", - "radioUsePassword": "Password", - "radioNoPassword": "Unencrypted (No password)", - "noPasswordWarning": "Not using a password on this account means that all data stored locally will not be encrypted", - "yourDisplayName": "Your Display Name", - "currentPasswordLabel": "Current Password", - "password1Label": "Password", - "password2Label": "Reenter password", - "passwordErrorEmpty": "Password cannot be empty", - "createProfileBtn": "Create Profile", - "saveProfileBtn": "Save Profile", - "passwordErrorMatch": "Passwords do not match", - "passwordChangeError": "Error changing password: Supplied password rejected", - "deleteProfileBtn": "Delete Profile", - "deleteConfirmLabel": "Type DELETE to confirm", - "deleteProfileConfirmBtn": "Really Delete Profile", - "deleteConfirmText": "DELETE", - "addNewProfileBtn": "Add new profile", - "enterProfilePassword": "Enter a password to view your profiles", - "password": "Password", - "error0ProfilesLoadedForPassword": "0 profiles loaded with that password", - "yourProfiles": "Your Profiles", - "yourServers": "Your Servers", - "unlock": "Unlock", - "cwtchSettingsTitle": "Cwtch Settings", - "versionBuilddate": "Version: %1 Built on: %2", - "zoomLabel": "Interface zoom (mostly affects text and button sizes)", - "blockUnknownLabel": "Block Unknown Peers", - "settingLanguage": "Language", - "localeEn": "English", - "localeFr": "Frances", - "localePt": "Portuguesa", - "localeDe": "Deutsche", - "settingInterfaceZoom": "Zoom level", - "largeTextLabel": "Large", - "settingTheme": "Theme", - "themeLight": "Light", - "themeDark": "Dark", + "tooltipAddContact": "Add a new contact or conversation", + "titleManageContacts": "Conversations", + "titleManageServers": "Manage Servers", + "dateMonthsAgo": "Months Ago", + "dateNever": "Never", + "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", + "dateLastYear": "Last Year", + "dateYesterday": "Yesterday", + "dateLastMonth": "Last Month", + "dateWeeksAgo": "Weeks Ago", + "dateDaysAgo": "Days Ago", + "dateHoursAgo": "Hours Ago", + "dateMinutesAgo": "Minutes Ago", + "dateRightNow": "Right Now", + "successfullAddedContact": "Successfully added ", + "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", + "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", + "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", + "titleManageProfiles": "Manage Cwtch Profiles", + "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", + "tooltipOpenSettings": "Open the settings pane", + "invalidImportString": "Invalid import string", + "contactAlreadyExists": "Contact Already Exists", + "conversationSettings": "Conversation Settings", + "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", + "enableGroups": "Enable Group Chat", "experimentsEnabled": "Enable Experiments", - "versionTor": "Version %1 with tor %2", - "version": "Version %1", - "builddate": "Built on: %2", - "defaultScalingText": "Default size text (scale factor:", - "smallTextLabel": "Small", - "loadingTor": "Loading tor...", - "viewGroupMembershipTooltip": "View Group Membership", - "networkStatusDisconnected": "Disconnected from the internet, check your connection", - "networkStatusAttemptingTor": "Attempting to connect to Tor network", - "networkStatusConnecting": "Connecting to network and peers...", - "networkStatusOnline": "Online", - "newConnectionPaneTitle": "New Connection", + "localeIt": "Italiana", + "localeEs": "Espanol", "addListItem": "Add a New List Item", "addNewItem": "Add a new item to the list", "todoPlaceholder": "Todo...", - "localeEs": "Espanol", - "localeIt": "Italiana", - "enableGroups": "Enable Group Chat", - "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", - "conversationSettings": "Conversation Settings", - "invalidImportString": "Invalid import string", - "contactAlreadyExists": "Contact Already Exists", - "tooltipOpenSettings": "Open the settings pane", - "tooltipAddContact": "Add a new contact or conversation", - "titleManageContacts": "Conversations", - "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", - "titleManageProfiles": "Manage Cwtch Profiles", - "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", - "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", - "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", - "successfullAddedContact": "Successfully added ", - "dateRightNow": "Right Now", - "dateMinutesAgo": "Minutes Ago", - "dateHoursAgo": "Hours Ago", - "dateDaysAgo": "Days Ago", - "dateWeeksAgo": "Weeks Ago", - "dateLastMonth": "Last Month", - "dateYesterday": "Yesterday", - "dateLastYear": "Last Year", - "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", - "dateNever": "Never", - "dateMonthsAgo": "Months Ago", - "titleManageServers": "Manage Servers", - "inviteToGroup": "You have been invited to join a group:", - "leaveGroup": "Leave This Conversation", - "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", - "yesLeave": "Yes, Leave This Conversation", - "newPassword": "New Password", - "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", - "accepted": "Accepted!", - "rejected": "Rejected!", - "contactSuggestion": "This is a contact suggestion for: ", - "sendAnInvitation": "You sent an invitation for: ", - "torVersion": "Tor Version", - "torStatus": "Tor Status", - "resetTor": "Reset", - "cancel": "Cancel", - "sendMessage": "Send Message", - "sendInvite": "Send a contact or group invite", - "deleteProfileSuccess": "Successfully deleted profile", - "addServerFirst": "You need to add a server before you can create a group", - "nickChangeSuccess": "Profile nickname changed successfully", - "createProfileToBegin": "Please create or unlock a profile to begin", - "addContactFirst": "Add or pick a contact to begin chatting.", - "torNetworkStatus": "Tor network status", - "debugLog": "Turn on console debug logging", - "profileDeleteSuccess": "Successfully deleted profile", - "malformedMessage": "Malformed message" + "newConnectionPaneTitle": "New Connection", + "networkStatusOnline": "Online", + "networkStatusConnecting": "Connecting to network and peers...", + "networkStatusAttemptingTor": "Attempting to connect to Tor network", + "networkStatusDisconnected": "Disconnected from the internet, check your connection", + "viewGroupMembershipTooltip": "View Group Membership", + "loadingTor": "Loading tor...", + "smallTextLabel": "Small", + "defaultScalingText": "Default size text (scale factor:", + "builddate": "Built on: %2", + "version": "Version %1", + "versionTor": "Version %1 with tor %2", + "themeDark": "Dark", + "themeLight": "Light", + "settingTheme": "Theme", + "largeTextLabel": "Large", + "settingInterfaceZoom": "Zoom level", + "localeDe": "Deutsche", + "localePt": "Portuguesa", + "localeFr": "Frances", + "localeEn": "English", + "settingLanguage": "Language", + "blockUnknownLabel": "Block Unknown Peers", + "zoomLabel": "Interface zoom (mostly affects text and button sizes)", + "versionBuilddate": "Version: %1 Built on: %2", + "cwtchSettingsTitle": "Cwtch Settings", + "unlock": "Unlock", + "yourServers": "Your Servers", + "yourProfiles": "Your Profiles", + "error0ProfilesLoadedForPassword": "0 profiles loaded with that password", + "password": "Password", + "enterProfilePassword": "Enter a password to view your profiles", + "addNewProfileBtn": "Add new profile", + "deleteConfirmText": "DELETE", + "deleteProfileConfirmBtn": "Really Delete Profile", + "deleteConfirmLabel": "Type DELETE to confirm", + "deleteProfileBtn": "Delete Profile", + "passwordChangeError": "Error changing password: Supplied password rejected", + "passwordErrorMatch": "Passwords do not match", + "saveProfileBtn": "Save Profile", + "createProfileBtn": "Create Profile", + "passwordErrorEmpty": "Password cannot be empty", + "password2Label": "Reenter password", + "password1Label": "Password", + "currentPasswordLabel": "Current Password", + "yourDisplayName": "Your Display Name", + "profileOnionLabel": "Send this address to peers you want to connect with", + "noPasswordWarning": "Not using a password on this account means that all data stored locally will not be encrypted", + "radioNoPassword": "Unencrypted (No password)", + "radioUsePassword": "Password", + "copiedToClipboardNotification": "Copied to Clipboard", + "copyBtn": "Copy", + "editProfile": "Edit Profille", + "newProfile": "New Profile", + "defaultProfileName": "Alice", + "profileName": "Display name", + "editProfileTitle": "Edit Profile", + "addProfileTitle": "Add new profile", + "deleteBtn": "Delete", + "unblockBtn": "Unblock Peer", + "dontSavePeerHistory": "Delete Peer History", + "savePeerHistoryDescription": "Determines whether or not to delete any history associated with the peer.", + "savePeerHistory": "Save Peer History", + "blockBtn": "Block Peer", + "saveBtn": "Save", + "displayNameLabel": "Display Name", + "addressLabel": "Address", + "puzzleGameBtn": "Puzzle Game", + "bulletinsBtn": "Bulletins", + "listsBtn": "Lists", + "chatBtn": "Chat", + "rejectGroupBtn": "Reject", + "acceptGroupBtn": "Accept", + "acceptGroupInviteLabel": "Do you want to accept the invitation to", + "newGroupBtn": "Create new group", + "copiedClipboardNotification": "Copied to clipboard", + "peerOfflineMessage": "Peer is offline, messages can't be delivered right now", + "peerBlockedMessage": "Peer is blocked", + "pendingLabel": "Pending", + "acknowledgedLabel": "Acknowledged", + "couldNotSendMsgError": "Could not send this message", + "dmTooltip": "Click to DM", + "membershipDescription": "Below is a list of users who have sent messages to the group. This list may not reflect all users who have access to the group.", + "addListItemBtn": "Add Item", + "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", + "searchList": "Search List", + "update": "Update", + "inviteBtn": "Invite", + "inviteToGroupLabel": "Invite to group", + "groupNameLabel": "Group Name", + "viewServerInfo": "Server Info", + "serverNotSynced": "Out of Sync", + "serverSynced": "Synced", + "serverConnectivityDisconnected": "Server Disconnected", + "serverConnectivityConnected": "Server Connected", + "serverInfo": "Server Information", + "invitationLabel": "Invitation", + "serverLabel": "Server", + "search": "Search...", + "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", + "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", + "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", + "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", + "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", + "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", + "blocked": "Blocked", + "titlePlaceholder": "title...", + "postNewBulletinLabel": "Post new bulletin", + "newBulletinLabel": "New Bulletin", + "joinGroup": "Join group", + "createGroup": "Create group", + "addPeer": "Add Peer", + "groupAddr": "Address", + "invitation": "Invitation", + "server": "Server", + "groupName": "Group name", + "peerName": "Name", + "peerAddress": "Address", + "joinGroupTab": "Join a group", + "createGroupTab": "Create a group", + "addPeerTab": "Add a peer", + "createGroupBtn": "Create", + "defaultGroupName": "Awesome Group", + "createGroupTitle": "Create Group" } \ No newline at end of file diff --git a/lib/l10n/intl_es.arb b/lib/l10n/intl_es.arb index c48b4ae..2f184d1 100644 --- a/lib/l10n/intl_es.arb +++ b/lib/l10n/intl_es.arb @@ -1,186 +1,190 @@ { "@@locale": "es", - "@@last_modified": "2021-06-15T02:08:49+02:00", - "createGroupTitle": "Crear un grupo", - "serverLabel": "Servidor", - "groupNameLabel": "Nombre del grupo", - "defaultGroupName": "El Grupo Asombroso", - "createGroupBtn": "Crear", - "profileOnionLabel": "Envía esta dirección a los contactos con los que quieras conectarte", - "copyBtn": "Copiar", - "copiedToClipboardNotification": "Copiado al portapapeles", - "addPeerTab": "Agregar Contacto", - "createGroupTab": "Crear un grupo", - "joinGroupTab": "Únete a un grupo", - "peerAddress": "Dirección", - "peerName": "Nombre", - "groupName": "Nombre del grupo", - "server": "Servidor", - "invitation": "Invitación", - "groupAddr": "Dirección", - "addPeer": "Agregar Contacto", - "createGroup": "Crear perfil", - "joinGroup": "Únete al grupo", - "newBulletinLabel": "Nuevo Boletín", - "postNewBulletinLabel": "Publicar nuevo boletín", - "titlePlaceholder": "título...", + "@@last_modified": "2021-06-16T23:15:48+02:00", + "shutdownCwtchAction": "Shutdown Cwtch", + "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", + "shutdownCwtchDialogTitle": "Shutdown Cwtch?", + "shutdownCwtchTooltip": "Shutdown Cwtch", + "malformedMessage": "Malformed message", + "profileDeleteSuccess": "Successfully deleted profile", + "debugLog": "Turn on console debug logging", + "torNetworkStatus": "Tor network status", + "addContactFirst": "Add or pick a contact to begin chatting.", + "createProfileToBegin": "Please create or unlock a profile to begin", + "nickChangeSuccess": "Profile nickname changed successfully", + "addServerFirst": "You need to add a server before you can create a group", + "deleteProfileSuccess": "Successfully deleted profile", + "sendInvite": "Send a contact or group invite", + "sendMessage": "Send Message", + "cancel": "Cancel", + "resetTor": "Reset", + "torStatus": "Tor Status", + "torVersion": "Tor Version", + "sendAnInvitation": "You sent an invitation for: ", + "contactSuggestion": "This is a contact suggestion for: ", + "rejected": "Rejected!", + "accepted": "Accepted!", + "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", + "newPassword": "New Password", + "yesLeave": "Yes, Leave This Conversation", + "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", + "leaveGroup": "Leave This Conversation", + "inviteToGroup": "You have been invited to join a group:", "pasteAddressToAddContact": "...pegar una dirección aquí para añadir contacto...", - "blocked": "Bloqueado", - "cycleCatsAndroid": "Click para cambiar categoría. Mantenga pulsado para reiniciar.", - "cycleCatsDesktop": "Click para cambiar categoría. Click derecho para reiniciar.", - "cycleMorphsAndroid": "Click para cambiar transformaciones. Mantenga pulsado para reiniciar.", - "cycleMorphsDesktop": "Click para cambiar transformaciones. Click derecho para reiniciar.", - "cycleColoursAndroid": "Click para cambiar colores. Mantenga pulsado para reiniciar.", - "cycleColoursDesktop": "Click para cambiar colores. Click derecho para reiniciar.", - "search": "Búsqueda...", - "invitationLabel": "Invitación", - "serverInfo": "Información del servidor", - "serverConnectivityConnected": "Servidor conectado", - "serverConnectivityDisconnected": "Servidor desconectado", - "serverSynced": "Sincronizado", - "serverNotSynced": "Fuera de sincronización con el servidor", - "viewServerInfo": "Información del servidor", - "saveBtn": "Guardar", - "inviteToGroupLabel": "Invitar al grupo", - "inviteBtn": "Invitar", - "deleteBtn": "Eliminar", - "update": "Actualizar", - "searchList": "Buscar en la lista", - "peerNotOnline": "Este contacto no está en línea, la aplicación no puede ser usada en este momento", - "addListItemBtn": "Agregar artículo", - "membershipDescription": "La lista a continuación solo muestra los miembros que han enviado mensajes al grupo, no incluye a todos los usuarios dentro del grupo", - "dmTooltip": "Haz clic para enviar mensaje directo", - "couldNotSendMsgError": "No se pudo enviar este mensaje", - "acknowledgedLabel": "Reconocido", - "pendingLabel": "Pendiente", - "peerBlockedMessage": "Contacto bloqueado", - "peerOfflineMessage": "Este contacto no está en línea, los mensajes no pueden ser entregados en este momento", - "copiedClipboardNotification": "Copiado al portapapeles", - "newGroupBtn": "Crear un nuevo grupo de chat", - "acceptGroupInviteLabel": "¿Quieres aceptar la invitación a ", - "acceptGroupBtn": "Aceptar", - "rejectGroupBtn": "Rechazar", - "chatBtn": "Chat", - "listsBtn": "Listas", - "bulletinsBtn": "Boletines", - "puzzleGameBtn": "Juego de rompecabezas", - "addressLabel": "Dirección", - "displayNameLabel": "Nombre de Usuario", - "blockBtn": "Bloquear contacto", - "savePeerHistory": "Guardar el historial con contacto", - "savePeerHistoryDescription": "Determina si eliminar o no el historial asociado con el contacto.", - "dontSavePeerHistory": "Eliminar historial de contacto", - "unblockBtn": "Desbloquear contacto", - "addProfileTitle": "Agregar nuevo perfil", - "editProfileTitle": "Editar perfil", - "profileName": "Nombre de Usuario", - "defaultProfileName": "Alicia", - "newProfile": "Nuevo perfil", - "editProfile": "Editar perfil", - "radioUsePassword": "Contraseña", - "radioNoPassword": "Sin cifrado (sin contraseña)", - "noPasswordWarning": "No usar una contraseña para esta cuenta significa que los datos almacenados localmente no serán encriptados", - "yourDisplayName": "Tu nombre de usuario", - "currentPasswordLabel": "Contraseña actual", - "password1Label": "Contraseña", - "password2Label": "Vuelve a ingresar tu contraseña", - "passwordErrorEmpty": "El campo de contraseña no puede estar vacío", - "createProfileBtn": "Crear perfil", - "saveProfileBtn": "Guardar perfil", - "passwordErrorMatch": "Las contraseñas no coinciden", - "passwordChangeError": "Hubo un error cambiando tu contraseña: la contraseña ingresada fue rechazada", - "deleteProfileBtn": "Eliminar Perfil", - "deleteConfirmLabel": "Escribe ELIMINAR para confirmar", - "deleteProfileConfirmBtn": "Confirmar eliminar perfil", - "deleteConfirmText": "ELIMINAR", - "addNewProfileBtn": "Agregar nuevo perfil", - "enterProfilePassword": "Ingresa tu contraseña para ver tus perfiles", - "password": "Contraseña", - "error0ProfilesLoadedForPassword": "0 perfiles cargados con esa contraseña", - "yourProfiles": "Tus perfiles", - "yourServers": "Tus servidores", - "unlock": "Desbloquear", - "cwtchSettingsTitle": "Configuración de Cwtch", - "versionBuilddate": "Versión: %1 Basado en %2", - "zoomLabel": "Zoom de la interfaz (afecta principalmente el tamaño del texto y de los botones)", - "blockUnknownLabel": "Bloquear conexiones desconocidas", - "settingLanguage": "Idioma", - "localeEn": "Inglés", - "localeFr": "Francés", - "localePt": "Portugués", - "localeDe": "Alemán", - "settingInterfaceZoom": "Nivel de zoom", - "largeTextLabel": "Grande", - "settingTheme": "Tema", - "themeLight": "Claro", - "themeDark": "Oscuro", + "tooltipAddContact": "Add a new contact or conversation", + "titleManageContacts": "Conversations", + "titleManageServers": "Manage Servers", + "dateMonthsAgo": "Months Ago", + "dateNever": "Never", + "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", + "dateLastYear": "Last Year", + "dateYesterday": "Yesterday", + "dateLastMonth": "Last Month", + "dateWeeksAgo": "Weeks Ago", + "dateDaysAgo": "Days Ago", + "dateHoursAgo": "Hours Ago", + "dateMinutesAgo": "Minutes Ago", + "dateRightNow": "Right Now", + "successfullAddedContact": "Successfully added ", + "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", + "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", + "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", + "titleManageProfiles": "Manage Cwtch Profiles", + "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", + "tooltipOpenSettings": "Open the settings pane", + "invalidImportString": "Invalid import string", + "contactAlreadyExists": "Contact Already Exists", + "conversationSettings": "Conversation Settings", + "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", + "enableGroups": "Enable Group Chat", "experimentsEnabled": "Experimentos habilitados", - "versionTor": "Versión %1 con tor %2", - "version": "Versión %1", - "builddate": "Basado en: %2", - "defaultScalingText": "Tamaño predeterminado de texto (factor de escala:", - "smallTextLabel": "Pequeño", - "loadingTor": "Cargando tor...", - "viewGroupMembershipTooltip": "Ver membresía del grupo", - "networkStatusDisconnected": "Sin conexión, comprueba tu conexión", - "networkStatusAttemptingTor": "Intentando conectarse a la red Tor", - "networkStatusConnecting": "Conectando a la red y a los contactos...", - "networkStatusOnline": "En línea", - "newConnectionPaneTitle": "Nueva conexión", + "localeIt": "Italiano", + "localeEs": "Español", "addListItem": "Añadir un nuevo elemento a la lista", "addNewItem": "Añadir un nuevo elemento a la lista", "todoPlaceholder": "Por hacer...", - "localeEs": "Español", - "localeIt": "Italiano", - "enableGroups": "Enable Group Chat", - "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", - "conversationSettings": "Conversation Settings", - "invalidImportString": "Invalid import string", - "contactAlreadyExists": "Contact Already Exists", - "tooltipOpenSettings": "Open the settings pane", - "tooltipAddContact": "Add a new contact or conversation", - "titleManageContacts": "Conversations", - "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", - "titleManageProfiles": "Manage Cwtch Profiles", - "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", - "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", - "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", - "successfullAddedContact": "Successfully added ", - "dateRightNow": "Right Now", - "dateMinutesAgo": "Minutes Ago", - "dateHoursAgo": "Hours Ago", - "dateDaysAgo": "Days Ago", - "dateWeeksAgo": "Weeks Ago", - "dateLastMonth": "Last Month", - "dateYesterday": "Yesterday", - "dateLastYear": "Last Year", - "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", - "dateNever": "Never", - "dateMonthsAgo": "Months Ago", - "titleManageServers": "Manage Servers", - "inviteToGroup": "You have been invited to join a group:", - "leaveGroup": "Leave This Conversation", - "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", - "yesLeave": "Yes, Leave This Conversation", - "newPassword": "New Password", - "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", - "accepted": "Accepted!", - "rejected": "Rejected!", - "contactSuggestion": "This is a contact suggestion for: ", - "sendAnInvitation": "You sent an invitation for: ", - "torVersion": "Tor Version", - "torStatus": "Tor Status", - "resetTor": "Reset", - "cancel": "Cancel", - "sendMessage": "Send Message", - "sendInvite": "Send a contact or group invite", - "deleteProfileSuccess": "Successfully deleted profile", - "addServerFirst": "You need to add a server before you can create a group", - "nickChangeSuccess": "Profile nickname changed successfully", - "createProfileToBegin": "Please create or unlock a profile to begin", - "addContactFirst": "Add or pick a contact to begin chatting.", - "torNetworkStatus": "Tor network status", - "debugLog": "Turn on console debug logging", - "profileDeleteSuccess": "Successfully deleted profile", - "malformedMessage": "Malformed message" + "newConnectionPaneTitle": "Nueva conexión", + "networkStatusOnline": "En línea", + "networkStatusConnecting": "Conectando a la red y a los contactos...", + "networkStatusAttemptingTor": "Intentando conectarse a la red Tor", + "networkStatusDisconnected": "Sin conexión, comprueba tu conexión", + "viewGroupMembershipTooltip": "Ver membresía del grupo", + "loadingTor": "Cargando tor...", + "smallTextLabel": "Pequeño", + "defaultScalingText": "Tamaño predeterminado de texto (factor de escala:", + "builddate": "Basado en: %2", + "version": "Versión %1", + "versionTor": "Versión %1 con tor %2", + "themeDark": "Oscuro", + "themeLight": "Claro", + "settingTheme": "Tema", + "largeTextLabel": "Grande", + "settingInterfaceZoom": "Nivel de zoom", + "localeDe": "Alemán", + "localePt": "Portugués", + "localeFr": "Francés", + "localeEn": "Inglés", + "settingLanguage": "Idioma", + "blockUnknownLabel": "Bloquear conexiones desconocidas", + "zoomLabel": "Zoom de la interfaz (afecta principalmente el tamaño del texto y de los botones)", + "versionBuilddate": "Versión: %1 Basado en %2", + "cwtchSettingsTitle": "Configuración de Cwtch", + "unlock": "Desbloquear", + "yourServers": "Tus servidores", + "yourProfiles": "Tus perfiles", + "error0ProfilesLoadedForPassword": "0 perfiles cargados con esa contraseña", + "password": "Contraseña", + "enterProfilePassword": "Ingresa tu contraseña para ver tus perfiles", + "addNewProfileBtn": "Agregar nuevo perfil", + "deleteConfirmText": "ELIMINAR", + "deleteProfileConfirmBtn": "Confirmar eliminar perfil", + "deleteConfirmLabel": "Escribe ELIMINAR para confirmar", + "deleteProfileBtn": "Eliminar Perfil", + "passwordChangeError": "Hubo un error cambiando tu contraseña: la contraseña ingresada fue rechazada", + "passwordErrorMatch": "Las contraseñas no coinciden", + "saveProfileBtn": "Guardar perfil", + "createProfileBtn": "Crear perfil", + "passwordErrorEmpty": "El campo de contraseña no puede estar vacío", + "password2Label": "Vuelve a ingresar tu contraseña", + "password1Label": "Contraseña", + "currentPasswordLabel": "Contraseña actual", + "yourDisplayName": "Tu nombre de usuario", + "profileOnionLabel": "Envía esta dirección a los contactos con los que quieras conectarte", + "noPasswordWarning": "No usar una contraseña para esta cuenta significa que los datos almacenados localmente no serán encriptados", + "radioNoPassword": "Sin cifrado (sin contraseña)", + "radioUsePassword": "Contraseña", + "copiedToClipboardNotification": "Copiado al portapapeles", + "copyBtn": "Copiar", + "editProfile": "Editar perfil", + "newProfile": "Nuevo perfil", + "defaultProfileName": "Alicia", + "profileName": "Nombre de Usuario", + "editProfileTitle": "Editar perfil", + "addProfileTitle": "Agregar nuevo perfil", + "deleteBtn": "Eliminar", + "unblockBtn": "Desbloquear contacto", + "dontSavePeerHistory": "Eliminar historial de contacto", + "savePeerHistoryDescription": "Determina si eliminar o no el historial asociado con el contacto.", + "savePeerHistory": "Guardar el historial con contacto", + "blockBtn": "Bloquear contacto", + "saveBtn": "Guardar", + "displayNameLabel": "Nombre de Usuario", + "addressLabel": "Dirección", + "puzzleGameBtn": "Juego de rompecabezas", + "bulletinsBtn": "Boletines", + "listsBtn": "Listas", + "chatBtn": "Chat", + "rejectGroupBtn": "Rechazar", + "acceptGroupBtn": "Aceptar", + "acceptGroupInviteLabel": "¿Quieres aceptar la invitación a ", + "newGroupBtn": "Crear un nuevo grupo de chat", + "copiedClipboardNotification": "Copiado al portapapeles", + "peerOfflineMessage": "Este contacto no está en línea, los mensajes no pueden ser entregados en este momento", + "peerBlockedMessage": "Contacto bloqueado", + "pendingLabel": "Pendiente", + "acknowledgedLabel": "Reconocido", + "couldNotSendMsgError": "No se pudo enviar este mensaje", + "dmTooltip": "Haz clic para enviar mensaje directo", + "membershipDescription": "La lista a continuación solo muestra los miembros que han enviado mensajes al grupo, no incluye a todos los usuarios dentro del grupo", + "addListItemBtn": "Agregar artículo", + "peerNotOnline": "Este contacto no está en línea, la aplicación no puede ser usada en este momento", + "searchList": "Buscar en la lista", + "update": "Actualizar", + "inviteBtn": "Invitar", + "inviteToGroupLabel": "Invitar al grupo", + "groupNameLabel": "Nombre del grupo", + "viewServerInfo": "Información del servidor", + "serverNotSynced": "Fuera de sincronización con el servidor", + "serverSynced": "Sincronizado", + "serverConnectivityDisconnected": "Servidor desconectado", + "serverConnectivityConnected": "Servidor conectado", + "serverInfo": "Información del servidor", + "invitationLabel": "Invitación", + "serverLabel": "Servidor", + "search": "Búsqueda...", + "cycleColoursDesktop": "Click para cambiar colores. Click derecho para reiniciar.", + "cycleColoursAndroid": "Click para cambiar colores. Mantenga pulsado para reiniciar.", + "cycleMorphsDesktop": "Click para cambiar transformaciones. Click derecho para reiniciar.", + "cycleMorphsAndroid": "Click para cambiar transformaciones. Mantenga pulsado para reiniciar.", + "cycleCatsDesktop": "Click para cambiar categoría. Click derecho para reiniciar.", + "cycleCatsAndroid": "Click para cambiar categoría. Mantenga pulsado para reiniciar.", + "blocked": "Bloqueado", + "titlePlaceholder": "título...", + "postNewBulletinLabel": "Publicar nuevo boletín", + "newBulletinLabel": "Nuevo Boletín", + "joinGroup": "Únete al grupo", + "createGroup": "Crear perfil", + "addPeer": "Agregar Contacto", + "groupAddr": "Dirección", + "invitation": "Invitación", + "server": "Servidor", + "groupName": "Nombre del grupo", + "peerName": "Nombre", + "peerAddress": "Dirección", + "joinGroupTab": "Únete a un grupo", + "createGroupTab": "Crear un grupo", + "addPeerTab": "Agregar Contacto", + "createGroupBtn": "Crear", + "defaultGroupName": "El Grupo Asombroso", + "createGroupTitle": "Crear un grupo" } \ No newline at end of file diff --git a/lib/l10n/intl_fr.arb b/lib/l10n/intl_fr.arb index 5dba514..fb6374e 100644 --- a/lib/l10n/intl_fr.arb +++ b/lib/l10n/intl_fr.arb @@ -1,186 +1,190 @@ { "@@locale": "fr", - "@@last_modified": "2021-06-15T02:08:49+02:00", - "createGroupTitle": "Créer un groupe", - "serverLabel": "Serveur", - "groupNameLabel": "Nom du groupe", - "defaultGroupName": "Un super groupe", - "createGroupBtn": "Créer", - "profileOnionLabel": "Send this address to peers you want to connect with", - "copyBtn": "Copier", - "copiedToClipboardNotification": "Copié dans le presse-papier", - "addPeerTab": "Add a peer", - "createGroupTab": "Create a group", - "joinGroupTab": "Join a group", - "peerAddress": "Address", - "peerName": "Name", - "groupName": "Group name", - "server": "Server", - "invitation": "Invitation", - "groupAddr": "Address", - "addPeer": "Add Peer", - "createGroup": "Create group", - "joinGroup": "Join group", - "newBulletinLabel": "Nouveau bulletin", - "postNewBulletinLabel": "Envoyer un nouveau bulletin", - "titlePlaceholder": "titre...", + "@@last_modified": "2021-06-16T23:15:48+02:00", + "shutdownCwtchAction": "Shutdown Cwtch", + "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", + "shutdownCwtchDialogTitle": "Shutdown Cwtch?", + "shutdownCwtchTooltip": "Shutdown Cwtch", + "malformedMessage": "Malformed message", + "profileDeleteSuccess": "Successfully deleted profile", + "debugLog": "Turn on console debug logging", + "torNetworkStatus": "Tor network status", + "addContactFirst": "Add or pick a contact to begin chatting.", + "createProfileToBegin": "Please create or unlock a profile to begin", + "nickChangeSuccess": "Profile nickname changed successfully", + "addServerFirst": "You need to add a server before you can create a group", + "deleteProfileSuccess": "Successfully deleted profile", + "sendInvite": "Send a contact or group invite", + "sendMessage": "Send Message", + "cancel": "Cancel", + "resetTor": "Reset", + "torStatus": "Tor Status", + "torVersion": "Tor Version", + "sendAnInvitation": "You sent an invitation for: ", + "contactSuggestion": "This is a contact suggestion for: ", + "rejected": "Rejected!", + "accepted": "Accepted!", + "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", + "newPassword": "New Password", + "yesLeave": "Yes, Leave This Conversation", + "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", + "leaveGroup": "Leave This Conversation", + "inviteToGroup": "You have been invited to join a group:", "pasteAddressToAddContact": "... coller une adresse ici pour ajouter un contact...", - "blocked": "Blocked", - "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", - "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", - "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", - "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", - "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", - "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", - "search": "Search...", - "invitationLabel": "Invitation", - "serverInfo": "Server Information", - "serverConnectivityConnected": "Server Connected", - "serverConnectivityDisconnected": "Server Disconnected", - "serverSynced": "Synced", - "serverNotSynced": "Out of Sync", - "viewServerInfo": "Server Info", - "saveBtn": "Sauvegarder", - "inviteToGroupLabel": "Inviter quelqu'un", - "inviteBtn": "Invitation", - "deleteBtn": "Effacer", - "update": "Update", - "searchList": "Search List", - "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", - "addListItemBtn": "Add Item", - "membershipDescription": "Liste des utilisateurs ayant envoyés un ou plusieurs messages au groupe. Cette liste peut ne pas être representatives de l'ensemble des membres du groupe.", - "dmTooltip": "Envoyer un message privé", - "couldNotSendMsgError": "Impossible d'envoyer ce message", - "acknowledgedLabel": "Confirmé", - "pendingLabel": "En attente", - "peerBlockedMessage": "Peer is blocked", - "peerOfflineMessage": "Peer is offline, messages can't be delivered right now", - "copiedClipboardNotification": "Copié dans le presse-papier", - "newGroupBtn": "Créer un nouveau groupe", - "acceptGroupInviteLabel": "Voulez-vous accepter l'invitation au groupe", - "acceptGroupBtn": "Accepter", - "rejectGroupBtn": "Refuser", - "chatBtn": "Discuter", - "listsBtn": "Listes", - "bulletinsBtn": "Bulletins", - "puzzleGameBtn": "Puzzle", - "addressLabel": "Adresse", - "displayNameLabel": "Pseudo", - "blockBtn": "Block Peer", - "savePeerHistory": "Save Peer History", - "savePeerHistoryDescription": "Determines whether or not to delete any history associated with the peer.", - "dontSavePeerHistory": "Delete Peer History", - "unblockBtn": "Unblock Peer", - "addProfileTitle": "Add new profile", - "editProfileTitle": "Edit Profile", - "profileName": "Display name", - "defaultProfileName": "Alice", - "newProfile": "New Profile", - "editProfile": "Edit Profille", - "radioUsePassword": "Password", - "radioNoPassword": "Unencrypted (No password)", - "noPasswordWarning": "Not using a password on this account means that all data stored locally will not be encrypted", - "yourDisplayName": "Your Display Name", - "currentPasswordLabel": "Current Password", - "password1Label": "Password", - "password2Label": "Reenter password", - "passwordErrorEmpty": "Password cannot be empty", - "createProfileBtn": "Create Profile", - "saveProfileBtn": "Save Profile", - "passwordErrorMatch": "Passwords do not match", - "passwordChangeError": "Error changing password: Supplied password rejected", - "deleteProfileBtn": "Delete Profile", - "deleteConfirmLabel": "Type DELETE to confirm", - "deleteProfileConfirmBtn": "Really Delete Profile", - "deleteConfirmText": "DELETE", - "addNewProfileBtn": "Add new profile", - "enterProfilePassword": "Enter a password to view your profiles", - "password": "Password", - "error0ProfilesLoadedForPassword": "0 profiles loaded with that password", - "yourProfiles": "Your Profiles", - "yourServers": "Your Servers", - "unlock": "Unlock", - "cwtchSettingsTitle": "Préférences Cwtch", - "versionBuilddate": "Version: %1 Built on: %2", - "zoomLabel": "Interface zoom (essentiellement la taille du texte et des composants de l'interface)", - "blockUnknownLabel": "Block Unknown Peers", - "settingLanguage": "Language", - "localeEn": "English", - "localeFr": "Frances", - "localePt": "Portuguesa", - "localeDe": "Deutsche", - "settingInterfaceZoom": "Zoom level", - "largeTextLabel": "Large", - "settingTheme": "Theme", - "themeLight": "Light", - "themeDark": "Dark", + "tooltipAddContact": "Add a new contact or conversation", + "titleManageContacts": "Conversations", + "titleManageServers": "Manage Servers", + "dateMonthsAgo": "Months Ago", + "dateNever": "Never", + "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", + "dateLastYear": "Last Year", + "dateYesterday": "Yesterday", + "dateLastMonth": "Last Month", + "dateWeeksAgo": "Weeks Ago", + "dateDaysAgo": "Days Ago", + "dateHoursAgo": "Hours Ago", + "dateMinutesAgo": "Minutes Ago", + "dateRightNow": "Right Now", + "successfullAddedContact": "Successfully added ", + "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", + "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", + "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", + "titleManageProfiles": "Manage Cwtch Profiles", + "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", + "tooltipOpenSettings": "Open the settings pane", + "invalidImportString": "Invalid import string", + "contactAlreadyExists": "Contact Already Exists", + "conversationSettings": "Conversation Settings", + "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", + "enableGroups": "Enable Group Chat", "experimentsEnabled": "Enable Experiments", - "versionTor": "Version %1 with tor %2", - "version": "Version %1", - "builddate": "Built on: %2", - "defaultScalingText": "Taille par défaut du texte (échelle:", - "smallTextLabel": "Petit", - "loadingTor": "Loading tor...", - "viewGroupMembershipTooltip": "View Group Membership", - "networkStatusDisconnected": "Disconnected from the internet, check your connection", - "networkStatusAttemptingTor": "Attempting to connect to Tor network", - "networkStatusConnecting": "Connecting to network and peers...", - "networkStatusOnline": "Online", - "newConnectionPaneTitle": "New Connection", + "localeIt": "Italiana", + "localeEs": "Espanol", "addListItem": "Ajouter un nouvel élément", "addNewItem": "Ajouter un nouvel élément à la liste", "todoPlaceholder": "A faire...", - "localeEs": "Espanol", - "localeIt": "Italiana", - "enableGroups": "Enable Group Chat", - "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", - "conversationSettings": "Conversation Settings", - "invalidImportString": "Invalid import string", - "contactAlreadyExists": "Contact Already Exists", - "tooltipOpenSettings": "Open the settings pane", - "tooltipAddContact": "Add a new contact or conversation", - "titleManageContacts": "Conversations", - "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", - "titleManageProfiles": "Manage Cwtch Profiles", - "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", - "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", - "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", - "successfullAddedContact": "Successfully added ", - "dateRightNow": "Right Now", - "dateMinutesAgo": "Minutes Ago", - "dateHoursAgo": "Hours Ago", - "dateDaysAgo": "Days Ago", - "dateWeeksAgo": "Weeks Ago", - "dateLastMonth": "Last Month", - "dateYesterday": "Yesterday", - "dateLastYear": "Last Year", - "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", - "dateNever": "Never", - "dateMonthsAgo": "Months Ago", - "titleManageServers": "Manage Servers", - "inviteToGroup": "You have been invited to join a group:", - "leaveGroup": "Leave This Conversation", - "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", - "yesLeave": "Yes, Leave This Conversation", - "newPassword": "New Password", - "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", - "accepted": "Accepted!", - "rejected": "Rejected!", - "contactSuggestion": "This is a contact suggestion for: ", - "sendAnInvitation": "You sent an invitation for: ", - "torVersion": "Tor Version", - "torStatus": "Tor Status", - "resetTor": "Reset", - "cancel": "Cancel", - "sendMessage": "Send Message", - "sendInvite": "Send a contact or group invite", - "deleteProfileSuccess": "Successfully deleted profile", - "addServerFirst": "You need to add a server before you can create a group", - "nickChangeSuccess": "Profile nickname changed successfully", - "createProfileToBegin": "Please create or unlock a profile to begin", - "addContactFirst": "Add or pick a contact to begin chatting.", - "torNetworkStatus": "Tor network status", - "debugLog": "Turn on console debug logging", - "profileDeleteSuccess": "Successfully deleted profile", - "malformedMessage": "Malformed message" + "newConnectionPaneTitle": "New Connection", + "networkStatusOnline": "Online", + "networkStatusConnecting": "Connecting to network and peers...", + "networkStatusAttemptingTor": "Attempting to connect to Tor network", + "networkStatusDisconnected": "Disconnected from the internet, check your connection", + "viewGroupMembershipTooltip": "View Group Membership", + "loadingTor": "Loading tor...", + "smallTextLabel": "Petit", + "defaultScalingText": "Taille par défaut du texte (échelle:", + "builddate": "Built on: %2", + "version": "Version %1", + "versionTor": "Version %1 with tor %2", + "themeDark": "Dark", + "themeLight": "Light", + "settingTheme": "Theme", + "largeTextLabel": "Large", + "settingInterfaceZoom": "Zoom level", + "localeDe": "Deutsche", + "localePt": "Portuguesa", + "localeFr": "Frances", + "localeEn": "English", + "settingLanguage": "Language", + "blockUnknownLabel": "Block Unknown Peers", + "zoomLabel": "Interface zoom (essentiellement la taille du texte et des composants de l'interface)", + "versionBuilddate": "Version: %1 Built on: %2", + "cwtchSettingsTitle": "Préférences Cwtch", + "unlock": "Unlock", + "yourServers": "Your Servers", + "yourProfiles": "Your Profiles", + "error0ProfilesLoadedForPassword": "0 profiles loaded with that password", + "password": "Password", + "enterProfilePassword": "Enter a password to view your profiles", + "addNewProfileBtn": "Add new profile", + "deleteConfirmText": "DELETE", + "deleteProfileConfirmBtn": "Really Delete Profile", + "deleteConfirmLabel": "Type DELETE to confirm", + "deleteProfileBtn": "Delete Profile", + "passwordChangeError": "Error changing password: Supplied password rejected", + "passwordErrorMatch": "Passwords do not match", + "saveProfileBtn": "Save Profile", + "createProfileBtn": "Create Profile", + "passwordErrorEmpty": "Password cannot be empty", + "password2Label": "Reenter password", + "password1Label": "Password", + "currentPasswordLabel": "Current Password", + "yourDisplayName": "Your Display Name", + "profileOnionLabel": "Send this address to peers you want to connect with", + "noPasswordWarning": "Not using a password on this account means that all data stored locally will not be encrypted", + "radioNoPassword": "Unencrypted (No password)", + "radioUsePassword": "Password", + "copiedToClipboardNotification": "Copié dans le presse-papier", + "copyBtn": "Copier", + "editProfile": "Edit Profille", + "newProfile": "New Profile", + "defaultProfileName": "Alice", + "profileName": "Display name", + "editProfileTitle": "Edit Profile", + "addProfileTitle": "Add new profile", + "deleteBtn": "Effacer", + "unblockBtn": "Unblock Peer", + "dontSavePeerHistory": "Delete Peer History", + "savePeerHistoryDescription": "Determines whether or not to delete any history associated with the peer.", + "savePeerHistory": "Save Peer History", + "blockBtn": "Block Peer", + "saveBtn": "Sauvegarder", + "displayNameLabel": "Pseudo", + "addressLabel": "Adresse", + "puzzleGameBtn": "Puzzle", + "bulletinsBtn": "Bulletins", + "listsBtn": "Listes", + "chatBtn": "Discuter", + "rejectGroupBtn": "Refuser", + "acceptGroupBtn": "Accepter", + "acceptGroupInviteLabel": "Voulez-vous accepter l'invitation au groupe", + "newGroupBtn": "Créer un nouveau groupe", + "copiedClipboardNotification": "Copié dans le presse-papier", + "peerOfflineMessage": "Peer is offline, messages can't be delivered right now", + "peerBlockedMessage": "Peer is blocked", + "pendingLabel": "En attente", + "acknowledgedLabel": "Confirmé", + "couldNotSendMsgError": "Impossible d'envoyer ce message", + "dmTooltip": "Envoyer un message privé", + "membershipDescription": "Liste des utilisateurs ayant envoyés un ou plusieurs messages au groupe. Cette liste peut ne pas être representatives de l'ensemble des membres du groupe.", + "addListItemBtn": "Add Item", + "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", + "searchList": "Search List", + "update": "Update", + "inviteBtn": "Invitation", + "inviteToGroupLabel": "Inviter quelqu'un", + "groupNameLabel": "Nom du groupe", + "viewServerInfo": "Server Info", + "serverNotSynced": "Out of Sync", + "serverSynced": "Synced", + "serverConnectivityDisconnected": "Server Disconnected", + "serverConnectivityConnected": "Server Connected", + "serverInfo": "Server Information", + "invitationLabel": "Invitation", + "serverLabel": "Serveur", + "search": "Search...", + "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", + "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", + "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", + "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", + "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", + "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", + "blocked": "Blocked", + "titlePlaceholder": "titre...", + "postNewBulletinLabel": "Envoyer un nouveau bulletin", + "newBulletinLabel": "Nouveau bulletin", + "joinGroup": "Join group", + "createGroup": "Create group", + "addPeer": "Add Peer", + "groupAddr": "Address", + "invitation": "Invitation", + "server": "Server", + "groupName": "Group name", + "peerName": "Name", + "peerAddress": "Address", + "joinGroupTab": "Join a group", + "createGroupTab": "Create a group", + "addPeerTab": "Add a peer", + "createGroupBtn": "Créer", + "defaultGroupName": "Un super groupe", + "createGroupTitle": "Créer un groupe" } \ No newline at end of file diff --git a/lib/l10n/intl_it.arb b/lib/l10n/intl_it.arb index e1310fd..ef865b8 100644 --- a/lib/l10n/intl_it.arb +++ b/lib/l10n/intl_it.arb @@ -1,186 +1,190 @@ { "@@locale": "it", - "@@last_modified": "2021-06-15T02:08:49+02:00", - "createGroupTitle": "Crea un gruppo", - "serverLabel": "Server", - "groupNameLabel": "Nome del gruppo", - "defaultGroupName": "Gruppo fantastico", - "createGroupBtn": "Crea", - "profileOnionLabel": "Inviare questo indirizzo ai peer con cui si desidera connettersi", - "copyBtn": "Copia", - "copiedToClipboardNotification": "Copiato negli appunti", - "addPeerTab": "Aggiungi un peer", - "createGroupTab": "Crea un gruppo", - "joinGroupTab": "Unisciti a un gruppo", - "peerAddress": "Indirizzo", - "peerName": "Nome", - "groupName": "Nome del gruppo", - "server": "Server", - "invitation": "Invito", - "groupAddr": "Indirizzo", - "addPeer": "Aggiungi peer", - "createGroup": "Crea un gruppo", - "joinGroup": "Unisciti al gruppo", - "newBulletinLabel": "Nuovo bollettino", - "postNewBulletinLabel": "Pubblica un nuovo bollettino", - "titlePlaceholder": "titolo...", + "@@last_modified": "2021-06-16T23:15:48+02:00", + "shutdownCwtchAction": "Shutdown Cwtch", + "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", + "shutdownCwtchDialogTitle": "Shutdown Cwtch?", + "shutdownCwtchTooltip": "Shutdown Cwtch", + "malformedMessage": "Malformed message", + "profileDeleteSuccess": "Successfully deleted profile", + "debugLog": "Turn on console debug logging", + "torNetworkStatus": "Tor network status", + "addContactFirst": "Add or pick a contact to begin chatting.", + "createProfileToBegin": "Please create or unlock a profile to begin", + "nickChangeSuccess": "Profile nickname changed successfully", + "addServerFirst": "You need to add a server before you can create a group", + "deleteProfileSuccess": "Successfully deleted profile", + "sendInvite": "Send a contact or group invite", + "sendMessage": "Send Message", + "cancel": "Cancel", + "resetTor": "Reset", + "torStatus": "Tor Status", + "torVersion": "Tor Version", + "sendAnInvitation": "You sent an invitation for: ", + "contactSuggestion": "This is a contact suggestion for: ", + "rejected": "Rejected!", + "accepted": "Accepted!", + "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", + "newPassword": "New Password", + "yesLeave": "Yes, Leave This Conversation", + "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", + "leaveGroup": "Leave This Conversation", + "inviteToGroup": "You have been invited to join a group:", "pasteAddressToAddContact": "... incolla qui un indirizzo per aggiungere un contatto...", - "blocked": "Bloccato", - "cycleCatsAndroid": "Fare clic per scorrere le categorie.\nPressione lunga per resettare.", - "cycleCatsDesktop": "Fare clic per scorrere le categorie.\nCliccare con il tasto destro per resettare.", - "cycleMorphsAndroid": "Fare clic per scorrere i morph.\nPressione lunga per resettare.", - "cycleMorphsDesktop": "Fare clic per scorrere i morph.\nCliccare con il tasto destro per resettare.", - "cycleColoursAndroid": "Fare clic per scorrere i colori.\nPressione lunga per resettare.", - "cycleColoursDesktop": "Fare clic per scorrere i colori.\nCliccare con il tasto destro per resettare.", - "search": "Ricerca...", - "invitationLabel": "Invito", - "serverInfo": "Informazioni sul server", - "serverConnectivityConnected": "Server connesso", - "serverConnectivityDisconnected": "Server disconnesso", - "serverSynced": "Sincronizzato", - "serverNotSynced": "Non sincronizzato", - "viewServerInfo": "Informazioni sul server", - "saveBtn": "Salva", - "inviteToGroupLabel": "Invitare nel gruppo", - "inviteBtn": "Invitare", - "deleteBtn": "Elimina", - "update": "Aggiornamento", - "searchList": "Cerca nella lista", - "peerNotOnline": "Il peer è offline. Le applicazioni non possono essere utilizzate in questo momento.", - "addListItemBtn": "Aggiungi elemento", - "membershipDescription": "Di seguito è riportato un elenco di utenti che hanno inviato messaggi al gruppo. Questo elenco potrebbe non corrispondere a tutti gli utenti che hanno accesso al gruppo.", - "dmTooltip": "Clicca per inviare un Messagio Diretto", - "couldNotSendMsgError": "Impossibile inviare questo messaggio", - "acknowledgedLabel": "Riconosciuto", - "pendingLabel": "In corso", - "peerBlockedMessage": "Il peer è bloccato", - "peerOfflineMessage": "Il peer è offline, i messaggi non possono essere recapitati in questo momento", - "copiedClipboardNotification": "Copiato negli Appunti", - "newGroupBtn": "Crea un nuovo gruppo", - "acceptGroupInviteLabel": "Vuoi accettare l'invito a", - "acceptGroupBtn": "Accetta", - "rejectGroupBtn": "Rifiuta", - "chatBtn": "Chat", - "listsBtn": "Liste", - "bulletinsBtn": "Bollettini", - "puzzleGameBtn": "Gioco di puzzle", - "addressLabel": "Indirizzo", - "displayNameLabel": "Nome visualizzato", - "blockBtn": "Blocca il peer", - "savePeerHistory": "Salva cronologia peer", - "savePeerHistoryDescription": "Determina se eliminare o meno ogni cronologia eventualmente associata al peer.", - "dontSavePeerHistory": "Elimina cronologia dei peer", - "unblockBtn": "Sblocca il peer", - "addProfileTitle": "Aggiungi nuovo profilo", - "editProfileTitle": "Modifica profilo", - "profileName": "Nome visualizzato", - "defaultProfileName": "Alice", - "newProfile": "Nuovo profilo", - "editProfile": "Modifica profilo", - "radioUsePassword": "Password", - "radioNoPassword": "Non criptato (senza password)", - "noPasswordWarning": "Non utilizzare una password su questo account significa che tutti i dati archiviati localmente non verranno criptati", - "yourDisplayName": "Il tuo nome visualizzato", - "currentPasswordLabel": "Password corrente", - "password1Label": "Password", - "password2Label": "Reinserire la password", - "passwordErrorEmpty": "La password non può essere vuota", - "createProfileBtn": "Crea un profilo", - "saveProfileBtn": "Salva il profilo", - "passwordErrorMatch": "Le password non corrispondono", - "passwordChangeError": "Errore durante la modifica della password: password fornita rifiutata", - "deleteProfileBtn": "Elimina profilo", - "deleteConfirmLabel": "Digita ELIMINA per confermare", - "deleteProfileConfirmBtn": "Elimina realmente il profilo", - "deleteConfirmText": "ELIMINA", - "addNewProfileBtn": "Aggiungi nuovo profilo", - "enterProfilePassword": "Inserisci una password per visualizzare i tuoi profili", - "password": "Password", - "error0ProfilesLoadedForPassword": "0 profili caricati con quella password", - "yourProfiles": "I tuoi profili", - "yourServers": "I tuoi server", - "unlock": "Sblocca", - "cwtchSettingsTitle": "Impostazioni di Cwtch", - "versionBuilddate": "Versione: %1 Costruito il: %2", - "zoomLabel": "Zoom dell'interfaccia (influisce principalmente sulle dimensioni del testo e dei pulsanti)", - "blockUnknownLabel": "Blocca peer sconosciuti", - "settingLanguage": "Lingua", - "localeEn": "Inglese", - "localeFr": "Francese", - "localePt": "Portoghese", - "localeDe": "Tedesco", - "settingInterfaceZoom": "Livello di zoom", - "largeTextLabel": "Grande", - "settingTheme": "Tema", - "themeLight": "Chiaro", - "themeDark": "Scuro", + "tooltipAddContact": "Add a new contact or conversation", + "titleManageContacts": "Conversations", + "titleManageServers": "Manage Servers", + "dateMonthsAgo": "Months Ago", + "dateNever": "Never", + "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", + "dateLastYear": "Last Year", + "dateYesterday": "Yesterday", + "dateLastMonth": "Last Month", + "dateWeeksAgo": "Weeks Ago", + "dateDaysAgo": "Days Ago", + "dateHoursAgo": "Hours Ago", + "dateMinutesAgo": "Minutes Ago", + "dateRightNow": "Right Now", + "successfullAddedContact": "Successfully added ", + "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", + "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", + "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", + "titleManageProfiles": "Manage Cwtch Profiles", + "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", + "tooltipOpenSettings": "Open the settings pane", + "invalidImportString": "Invalid import string", + "contactAlreadyExists": "Contact Already Exists", + "conversationSettings": "Conversation Settings", + "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", + "enableGroups": "Enable Group Chat", "experimentsEnabled": "Esperimenti abilitati", - "versionTor": "Versione %1 con tor %2", - "version": "Versione %1", - "builddate": "Costruito il: %2", - "defaultScalingText": "Testo di dimensioni predefinite (fattore di scala:", - "smallTextLabel": "Piccolo", - "loadingTor": "Caricamento di tor...", - "viewGroupMembershipTooltip": "Visualizza i membri del gruppo", - "networkStatusDisconnected": "Disconnesso da Internet, controlla la tua connessione", - "networkStatusAttemptingTor": "Tentativo di connessione alla rete Tor", - "networkStatusConnecting": "Connessione alla rete e ai peer ...", - "networkStatusOnline": "Online", - "newConnectionPaneTitle": "Nuova connessione", + "localeIt": "Italiano", + "localeEs": "Spagnolo", "addListItem": "Aggiungi un nuovo elemento alla lista", "addNewItem": "Aggiungi un nuovo elemento alla lista", "todoPlaceholder": "Da fare...", - "localeEs": "Spagnolo", - "localeIt": "Italiano", - "enableGroups": "Enable Group Chat", - "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", - "conversationSettings": "Conversation Settings", - "invalidImportString": "Invalid import string", - "contactAlreadyExists": "Contact Already Exists", - "tooltipOpenSettings": "Open the settings pane", - "tooltipAddContact": "Add a new contact or conversation", - "titleManageContacts": "Conversations", - "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", - "titleManageProfiles": "Manage Cwtch Profiles", - "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", - "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", - "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", - "successfullAddedContact": "Successfully added ", - "dateRightNow": "Right Now", - "dateMinutesAgo": "Minutes Ago", - "dateHoursAgo": "Hours Ago", - "dateDaysAgo": "Days Ago", - "dateWeeksAgo": "Weeks Ago", - "dateLastMonth": "Last Month", - "dateYesterday": "Yesterday", - "dateLastYear": "Last Year", - "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", - "dateNever": "Never", - "dateMonthsAgo": "Months Ago", - "titleManageServers": "Manage Servers", - "inviteToGroup": "You have been invited to join a group:", - "leaveGroup": "Leave This Conversation", - "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", - "yesLeave": "Yes, Leave This Conversation", - "newPassword": "New Password", - "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", - "accepted": "Accepted!", - "rejected": "Rejected!", - "contactSuggestion": "This is a contact suggestion for: ", - "sendAnInvitation": "You sent an invitation for: ", - "torVersion": "Tor Version", - "torStatus": "Tor Status", - "resetTor": "Reset", - "cancel": "Cancel", - "sendMessage": "Send Message", - "sendInvite": "Send a contact or group invite", - "deleteProfileSuccess": "Successfully deleted profile", - "addServerFirst": "You need to add a server before you can create a group", - "nickChangeSuccess": "Profile nickname changed successfully", - "createProfileToBegin": "Please create or unlock a profile to begin", - "addContactFirst": "Add or pick a contact to begin chatting.", - "torNetworkStatus": "Tor network status", - "debugLog": "Turn on console debug logging", - "profileDeleteSuccess": "Successfully deleted profile", - "malformedMessage": "Malformed message" + "newConnectionPaneTitle": "Nuova connessione", + "networkStatusOnline": "Online", + "networkStatusConnecting": "Connessione alla rete e ai peer ...", + "networkStatusAttemptingTor": "Tentativo di connessione alla rete Tor", + "networkStatusDisconnected": "Disconnesso da Internet, controlla la tua connessione", + "viewGroupMembershipTooltip": "Visualizza i membri del gruppo", + "loadingTor": "Caricamento di tor...", + "smallTextLabel": "Piccolo", + "defaultScalingText": "Testo di dimensioni predefinite (fattore di scala:", + "builddate": "Costruito il: %2", + "version": "Versione %1", + "versionTor": "Versione %1 con tor %2", + "themeDark": "Scuro", + "themeLight": "Chiaro", + "settingTheme": "Tema", + "largeTextLabel": "Grande", + "settingInterfaceZoom": "Livello di zoom", + "localeDe": "Tedesco", + "localePt": "Portoghese", + "localeFr": "Francese", + "localeEn": "Inglese", + "settingLanguage": "Lingua", + "blockUnknownLabel": "Blocca peer sconosciuti", + "zoomLabel": "Zoom dell'interfaccia (influisce principalmente sulle dimensioni del testo e dei pulsanti)", + "versionBuilddate": "Versione: %1 Costruito il: %2", + "cwtchSettingsTitle": "Impostazioni di Cwtch", + "unlock": "Sblocca", + "yourServers": "I tuoi server", + "yourProfiles": "I tuoi profili", + "error0ProfilesLoadedForPassword": "0 profili caricati con quella password", + "password": "Password", + "enterProfilePassword": "Inserisci una password per visualizzare i tuoi profili", + "addNewProfileBtn": "Aggiungi nuovo profilo", + "deleteConfirmText": "ELIMINA", + "deleteProfileConfirmBtn": "Elimina realmente il profilo", + "deleteConfirmLabel": "Digita ELIMINA per confermare", + "deleteProfileBtn": "Elimina profilo", + "passwordChangeError": "Errore durante la modifica della password: password fornita rifiutata", + "passwordErrorMatch": "Le password non corrispondono", + "saveProfileBtn": "Salva il profilo", + "createProfileBtn": "Crea un profilo", + "passwordErrorEmpty": "La password non può essere vuota", + "password2Label": "Reinserire la password", + "password1Label": "Password", + "currentPasswordLabel": "Password corrente", + "yourDisplayName": "Il tuo nome visualizzato", + "profileOnionLabel": "Inviare questo indirizzo ai peer con cui si desidera connettersi", + "noPasswordWarning": "Non utilizzare una password su questo account significa che tutti i dati archiviati localmente non verranno criptati", + "radioNoPassword": "Non criptato (senza password)", + "radioUsePassword": "Password", + "copiedToClipboardNotification": "Copiato negli appunti", + "copyBtn": "Copia", + "editProfile": "Modifica profilo", + "newProfile": "Nuovo profilo", + "defaultProfileName": "Alice", + "profileName": "Nome visualizzato", + "editProfileTitle": "Modifica profilo", + "addProfileTitle": "Aggiungi nuovo profilo", + "deleteBtn": "Elimina", + "unblockBtn": "Sblocca il peer", + "dontSavePeerHistory": "Elimina cronologia dei peer", + "savePeerHistoryDescription": "Determina se eliminare o meno ogni cronologia eventualmente associata al peer.", + "savePeerHistory": "Salva cronologia peer", + "blockBtn": "Blocca il peer", + "saveBtn": "Salva", + "displayNameLabel": "Nome visualizzato", + "addressLabel": "Indirizzo", + "puzzleGameBtn": "Gioco di puzzle", + "bulletinsBtn": "Bollettini", + "listsBtn": "Liste", + "chatBtn": "Chat", + "rejectGroupBtn": "Rifiuta", + "acceptGroupBtn": "Accetta", + "acceptGroupInviteLabel": "Vuoi accettare l'invito a", + "newGroupBtn": "Crea un nuovo gruppo", + "copiedClipboardNotification": "Copiato negli Appunti", + "peerOfflineMessage": "Il peer è offline, i messaggi non possono essere recapitati in questo momento", + "peerBlockedMessage": "Il peer è bloccato", + "pendingLabel": "In corso", + "acknowledgedLabel": "Riconosciuto", + "couldNotSendMsgError": "Impossibile inviare questo messaggio", + "dmTooltip": "Clicca per inviare un Messagio Diretto", + "membershipDescription": "Di seguito è riportato un elenco di utenti che hanno inviato messaggi al gruppo. Questo elenco potrebbe non corrispondere a tutti gli utenti che hanno accesso al gruppo.", + "addListItemBtn": "Aggiungi elemento", + "peerNotOnline": "Il peer è offline. Le applicazioni non possono essere utilizzate in questo momento.", + "searchList": "Cerca nella lista", + "update": "Aggiornamento", + "inviteBtn": "Invitare", + "inviteToGroupLabel": "Invitare nel gruppo", + "groupNameLabel": "Nome del gruppo", + "viewServerInfo": "Informazioni sul server", + "serverNotSynced": "Non sincronizzato", + "serverSynced": "Sincronizzato", + "serverConnectivityDisconnected": "Server disconnesso", + "serverConnectivityConnected": "Server connesso", + "serverInfo": "Informazioni sul server", + "invitationLabel": "Invito", + "serverLabel": "Server", + "search": "Ricerca...", + "cycleColoursDesktop": "Fare clic per scorrere i colori.\nCliccare con il tasto destro per resettare.", + "cycleColoursAndroid": "Fare clic per scorrere i colori.\nPressione lunga per resettare.", + "cycleMorphsDesktop": "Fare clic per scorrere i morph.\nCliccare con il tasto destro per resettare.", + "cycleMorphsAndroid": "Fare clic per scorrere i morph.\nPressione lunga per resettare.", + "cycleCatsDesktop": "Fare clic per scorrere le categorie.\nCliccare con il tasto destro per resettare.", + "cycleCatsAndroid": "Fare clic per scorrere le categorie.\nPressione lunga per resettare.", + "blocked": "Bloccato", + "titlePlaceholder": "titolo...", + "postNewBulletinLabel": "Pubblica un nuovo bollettino", + "newBulletinLabel": "Nuovo bollettino", + "joinGroup": "Unisciti al gruppo", + "createGroup": "Crea un gruppo", + "addPeer": "Aggiungi peer", + "groupAddr": "Indirizzo", + "invitation": "Invito", + "server": "Server", + "groupName": "Nome del gruppo", + "peerName": "Nome", + "peerAddress": "Indirizzo", + "joinGroupTab": "Unisciti a un gruppo", + "createGroupTab": "Crea un gruppo", + "addPeerTab": "Aggiungi un peer", + "createGroupBtn": "Crea", + "defaultGroupName": "Gruppo fantastico", + "createGroupTitle": "Crea un gruppo" } \ No newline at end of file diff --git a/lib/l10n/intl_pt.arb b/lib/l10n/intl_pt.arb index aff75c9..fd4c5ea 100644 --- a/lib/l10n/intl_pt.arb +++ b/lib/l10n/intl_pt.arb @@ -1,186 +1,190 @@ { "@@locale": "pt", - "@@last_modified": "2021-06-15T02:08:49+02:00", - "createGroupTitle": "Criar Grupo", - "serverLabel": "Servidor", - "groupNameLabel": "Nome do Grupo", - "defaultGroupName": "Grupo incrível", - "createGroupBtn": "Criar", - "profileOnionLabel": "Send this address to peers you want to connect with", - "copyBtn": "Copiar", - "copiedToClipboardNotification": "Copiado", - "addPeerTab": "Add a peer", - "createGroupTab": "Create a group", - "joinGroupTab": "Join a group", - "peerAddress": "Address", - "peerName": "Name", - "groupName": "Group name", - "server": "Server", - "invitation": "Invitation", - "groupAddr": "Address", - "addPeer": "Add Peer", - "createGroup": "Create group", - "joinGroup": "Join group", - "newBulletinLabel": "Novo Boletim", - "postNewBulletinLabel": "Postar novo boletim", - "titlePlaceholder": "título…", + "@@last_modified": "2021-06-16T23:15:48+02:00", + "shutdownCwtchAction": "Shutdown Cwtch", + "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", + "shutdownCwtchDialogTitle": "Shutdown Cwtch?", + "shutdownCwtchTooltip": "Shutdown Cwtch", + "malformedMessage": "Malformed message", + "profileDeleteSuccess": "Successfully deleted profile", + "debugLog": "Turn on console debug logging", + "torNetworkStatus": "Tor network status", + "addContactFirst": "Add or pick a contact to begin chatting.", + "createProfileToBegin": "Please create or unlock a profile to begin", + "nickChangeSuccess": "Profile nickname changed successfully", + "addServerFirst": "You need to add a server before you can create a group", + "deleteProfileSuccess": "Successfully deleted profile", + "sendInvite": "Send a contact or group invite", + "sendMessage": "Send Message", + "cancel": "Cancel", + "resetTor": "Reset", + "torStatus": "Tor Status", + "torVersion": "Tor Version", + "sendAnInvitation": "You sent an invitation for: ", + "contactSuggestion": "This is a contact suggestion for: ", + "rejected": "Rejected!", + "accepted": "Accepted!", + "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", + "newPassword": "New Password", + "yesLeave": "Yes, Leave This Conversation", + "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", + "leaveGroup": "Leave This Conversation", + "inviteToGroup": "You have been invited to join a group:", "pasteAddressToAddContact": "… cole um endereço aqui para adicionar um contato…", - "blocked": "Blocked", - "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", - "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", - "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", - "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", - "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", - "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", - "search": "Search...", - "invitationLabel": "Convite", - "serverInfo": "Server Information", - "serverConnectivityConnected": "Server Connected", - "serverConnectivityDisconnected": "Server Disconnected", - "serverSynced": "Synced", - "serverNotSynced": "Out of Sync", - "viewServerInfo": "Server Info", - "saveBtn": "Salvar", - "inviteToGroupLabel": "Convidar ao grupo", - "inviteBtn": "Convidar", - "deleteBtn": "Deletar", - "update": "Update", - "searchList": "Search List", - "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", - "addListItemBtn": "Add Item", - "membershipDescription": "A lista abaixo é de usuários que enviaram mensagens ao grupo. Essa lista pode não refletir todos os usuários que têm acesso ao grupo.", - "dmTooltip": "Clique para DM", - "couldNotSendMsgError": "Não deu para enviar esta mensagem", - "acknowledgedLabel": "Confirmada", - "pendingLabel": "Pendente", - "peerBlockedMessage": "Peer is blocked", - "peerOfflineMessage": "Peer is offline, messages can't be delivered right now", - "copiedClipboardNotification": "Copiado", - "newGroupBtn": "Criar novo grupo", - "acceptGroupInviteLabel": "Você quer aceitar o convite para", - "acceptGroupBtn": "Aceitar", - "rejectGroupBtn": "Recusar", - "chatBtn": "Chat", - "listsBtn": "Listas", - "bulletinsBtn": "Boletins", - "puzzleGameBtn": "Jogo de Adivinhação", - "addressLabel": "Endereço", - "displayNameLabel": "Nome de Exibição", - "blockBtn": "Block Peer", - "savePeerHistory": "Save Peer History", - "savePeerHistoryDescription": "Determines whether or not to delete any history associated with the peer.", - "dontSavePeerHistory": "Delete Peer History", - "unblockBtn": "Unblock Peer", - "addProfileTitle": "Add new profile", - "editProfileTitle": "Edit Profile", - "profileName": "Display name", - "defaultProfileName": "Alice", - "newProfile": "New Profile", - "editProfile": "Edit Profille", - "radioUsePassword": "Password", - "radioNoPassword": "Unencrypted (No password)", - "noPasswordWarning": "Not using a password on this account means that all data stored locally will not be encrypted", - "yourDisplayName": "Your Display Name", - "currentPasswordLabel": "Current Password", - "password1Label": "Password", - "password2Label": "Reenter password", - "passwordErrorEmpty": "Password cannot be empty", - "createProfileBtn": "Create Profile", - "saveProfileBtn": "Save Profile", - "passwordErrorMatch": "Passwords do not match", - "passwordChangeError": "Error changing password: Supplied password rejected", - "deleteProfileBtn": "Delete Profile", - "deleteConfirmLabel": "Type DELETE to confirm", - "deleteProfileConfirmBtn": "Really Delete Profile", - "deleteConfirmText": "DELETE", - "addNewProfileBtn": "Add new profile", - "enterProfilePassword": "Enter a password to view your profiles", - "password": "Password", - "error0ProfilesLoadedForPassword": "0 profiles loaded with that password", - "yourProfiles": "Your Profiles", - "yourServers": "Your Servers", - "unlock": "Unlock", - "cwtchSettingsTitle": "Configurações do Cwtch", - "versionBuilddate": "Version: %1 Built on: %2", - "zoomLabel": "Zoom da interface (afeta principalmente tamanho de texto e botões)", - "blockUnknownLabel": "Block Unknown Peers", - "settingLanguage": "Language", - "localeEn": "English", - "localeFr": "Frances", - "localePt": "Portuguesa", - "localeDe": "Deutsche", - "settingInterfaceZoom": "Zoom level", - "largeTextLabel": "Grande", - "settingTheme": "Theme", - "themeLight": "Light", - "themeDark": "Dark", + "tooltipAddContact": "Add a new contact or conversation", + "titleManageContacts": "Conversations", + "titleManageServers": "Manage Servers", + "dateMonthsAgo": "Months Ago", + "dateNever": "Never", + "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", + "dateLastYear": "Last Year", + "dateYesterday": "Yesterday", + "dateLastMonth": "Last Month", + "dateWeeksAgo": "Weeks Ago", + "dateDaysAgo": "Days Ago", + "dateHoursAgo": "Hours Ago", + "dateMinutesAgo": "Minutes Ago", + "dateRightNow": "Right Now", + "successfullAddedContact": "Successfully added ", + "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", + "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", + "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", + "titleManageProfiles": "Manage Cwtch Profiles", + "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", + "tooltipOpenSettings": "Open the settings pane", + "invalidImportString": "Invalid import string", + "contactAlreadyExists": "Contact Already Exists", + "conversationSettings": "Conversation Settings", + "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", + "enableGroups": "Enable Group Chat", "experimentsEnabled": "Enable Experiments", - "versionTor": "Version %1 with tor %2", - "version": "Version %1", - "builddate": "Built on: %2", - "defaultScalingText": "Texto tamanho padrão (fator de escala: ", - "smallTextLabel": "Pequeno", - "loadingTor": "Loading tor...", - "viewGroupMembershipTooltip": "View Group Membership", - "networkStatusDisconnected": "Disconnected from the internet, check your connection", - "networkStatusAttemptingTor": "Attempting to connect to Tor network", - "networkStatusConnecting": "Connecting to network and peers...", - "networkStatusOnline": "Online", - "newConnectionPaneTitle": "New Connection", + "localeIt": "Italiana", + "localeEs": "Espanol", "addListItem": "Adicionar Item à Lista", "addNewItem": "Adicionar novo item à lista", "todoPlaceholder": "Afazer…", - "localeEs": "Espanol", - "localeIt": "Italiana", - "enableGroups": "Enable Group Chat", - "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", - "conversationSettings": "Conversation Settings", - "invalidImportString": "Invalid import string", - "contactAlreadyExists": "Contact Already Exists", - "tooltipOpenSettings": "Open the settings pane", - "tooltipAddContact": "Add a new contact or conversation", - "titleManageContacts": "Conversations", - "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", - "titleManageProfiles": "Manage Cwtch Profiles", - "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", - "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", - "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", - "successfullAddedContact": "Successfully added ", - "dateRightNow": "Right Now", - "dateMinutesAgo": "Minutes Ago", - "dateHoursAgo": "Hours Ago", - "dateDaysAgo": "Days Ago", - "dateWeeksAgo": "Weeks Ago", - "dateLastMonth": "Last Month", - "dateYesterday": "Yesterday", - "dateLastYear": "Last Year", - "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", - "dateNever": "Never", - "dateMonthsAgo": "Months Ago", - "titleManageServers": "Manage Servers", - "inviteToGroup": "You have been invited to join a group:", - "leaveGroup": "Leave This Conversation", - "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", - "yesLeave": "Yes, Leave This Conversation", - "newPassword": "New Password", - "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", - "accepted": "Accepted!", - "rejected": "Rejected!", - "contactSuggestion": "This is a contact suggestion for: ", - "sendAnInvitation": "You sent an invitation for: ", - "torVersion": "Tor Version", - "torStatus": "Tor Status", - "resetTor": "Reset", - "cancel": "Cancel", - "sendMessage": "Send Message", - "sendInvite": "Send a contact or group invite", - "deleteProfileSuccess": "Successfully deleted profile", - "addServerFirst": "You need to add a server before you can create a group", - "nickChangeSuccess": "Profile nickname changed successfully", - "createProfileToBegin": "Please create or unlock a profile to begin", - "addContactFirst": "Add or pick a contact to begin chatting.", - "torNetworkStatus": "Tor network status", - "debugLog": "Turn on console debug logging", - "profileDeleteSuccess": "Successfully deleted profile", - "malformedMessage": "Malformed message" + "newConnectionPaneTitle": "New Connection", + "networkStatusOnline": "Online", + "networkStatusConnecting": "Connecting to network and peers...", + "networkStatusAttemptingTor": "Attempting to connect to Tor network", + "networkStatusDisconnected": "Disconnected from the internet, check your connection", + "viewGroupMembershipTooltip": "View Group Membership", + "loadingTor": "Loading tor...", + "smallTextLabel": "Pequeno", + "defaultScalingText": "Texto tamanho padrão (fator de escala: ", + "builddate": "Built on: %2", + "version": "Version %1", + "versionTor": "Version %1 with tor %2", + "themeDark": "Dark", + "themeLight": "Light", + "settingTheme": "Theme", + "largeTextLabel": "Grande", + "settingInterfaceZoom": "Zoom level", + "localeDe": "Deutsche", + "localePt": "Portuguesa", + "localeFr": "Frances", + "localeEn": "English", + "settingLanguage": "Language", + "blockUnknownLabel": "Block Unknown Peers", + "zoomLabel": "Zoom da interface (afeta principalmente tamanho de texto e botões)", + "versionBuilddate": "Version: %1 Built on: %2", + "cwtchSettingsTitle": "Configurações do Cwtch", + "unlock": "Unlock", + "yourServers": "Your Servers", + "yourProfiles": "Your Profiles", + "error0ProfilesLoadedForPassword": "0 profiles loaded with that password", + "password": "Password", + "enterProfilePassword": "Enter a password to view your profiles", + "addNewProfileBtn": "Add new profile", + "deleteConfirmText": "DELETE", + "deleteProfileConfirmBtn": "Really Delete Profile", + "deleteConfirmLabel": "Type DELETE to confirm", + "deleteProfileBtn": "Delete Profile", + "passwordChangeError": "Error changing password: Supplied password rejected", + "passwordErrorMatch": "Passwords do not match", + "saveProfileBtn": "Save Profile", + "createProfileBtn": "Create Profile", + "passwordErrorEmpty": "Password cannot be empty", + "password2Label": "Reenter password", + "password1Label": "Password", + "currentPasswordLabel": "Current Password", + "yourDisplayName": "Your Display Name", + "profileOnionLabel": "Send this address to peers you want to connect with", + "noPasswordWarning": "Not using a password on this account means that all data stored locally will not be encrypted", + "radioNoPassword": "Unencrypted (No password)", + "radioUsePassword": "Password", + "copiedToClipboardNotification": "Copiado", + "copyBtn": "Copiar", + "editProfile": "Edit Profille", + "newProfile": "New Profile", + "defaultProfileName": "Alice", + "profileName": "Display name", + "editProfileTitle": "Edit Profile", + "addProfileTitle": "Add new profile", + "deleteBtn": "Deletar", + "unblockBtn": "Unblock Peer", + "dontSavePeerHistory": "Delete Peer History", + "savePeerHistoryDescription": "Determines whether or not to delete any history associated with the peer.", + "savePeerHistory": "Save Peer History", + "blockBtn": "Block Peer", + "saveBtn": "Salvar", + "displayNameLabel": "Nome de Exibição", + "addressLabel": "Endereço", + "puzzleGameBtn": "Jogo de Adivinhação", + "bulletinsBtn": "Boletins", + "listsBtn": "Listas", + "chatBtn": "Chat", + "rejectGroupBtn": "Recusar", + "acceptGroupBtn": "Aceitar", + "acceptGroupInviteLabel": "Você quer aceitar o convite para", + "newGroupBtn": "Criar novo grupo", + "copiedClipboardNotification": "Copiado", + "peerOfflineMessage": "Peer is offline, messages can't be delivered right now", + "peerBlockedMessage": "Peer is blocked", + "pendingLabel": "Pendente", + "acknowledgedLabel": "Confirmada", + "couldNotSendMsgError": "Não deu para enviar esta mensagem", + "dmTooltip": "Clique para DM", + "membershipDescription": "A lista abaixo é de usuários que enviaram mensagens ao grupo. Essa lista pode não refletir todos os usuários que têm acesso ao grupo.", + "addListItemBtn": "Add Item", + "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", + "searchList": "Search List", + "update": "Update", + "inviteBtn": "Convidar", + "inviteToGroupLabel": "Convidar ao grupo", + "groupNameLabel": "Nome do Grupo", + "viewServerInfo": "Server Info", + "serverNotSynced": "Out of Sync", + "serverSynced": "Synced", + "serverConnectivityDisconnected": "Server Disconnected", + "serverConnectivityConnected": "Server Connected", + "serverInfo": "Server Information", + "invitationLabel": "Convite", + "serverLabel": "Servidor", + "search": "Search...", + "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", + "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", + "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", + "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", + "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", + "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", + "blocked": "Blocked", + "titlePlaceholder": "título…", + "postNewBulletinLabel": "Postar novo boletim", + "newBulletinLabel": "Novo Boletim", + "joinGroup": "Join group", + "createGroup": "Create group", + "addPeer": "Add Peer", + "groupAddr": "Address", + "invitation": "Invitation", + "server": "Server", + "groupName": "Group name", + "peerName": "Name", + "peerAddress": "Address", + "joinGroupTab": "Join a group", + "createGroupTab": "Create a group", + "addPeerTab": "Add a peer", + "createGroupBtn": "Criar", + "defaultGroupName": "Grupo incrível", + "createGroupTitle": "Criar Grupo" } \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 25ad0f5..7589d12 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,4 @@ import 'dart:convert'; - import 'package:cwtch/notification_manager.dart'; import 'package:cwtch/views/messageview.dart'; import 'package:cwtch/widgets/rightshiftfixer.dart'; @@ -19,16 +18,19 @@ import 'licenses.dart'; import 'model.dart'; import 'views/profilemgrview.dart'; import 'views/splashView.dart'; -import 'dart:io' show Platform; +import 'dart:io' show Platform, exit; import 'opaque.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; var globalSettings = Settings(Locale("en", ''), Opaque.dark); var globalErrorHandler = ErrorHandler(); var globalTorStatus = TorStatus(); +var globalAppState = AppState(); void main() { + print("main()"); LicenseRegistry.addLicense(() => licenses()); + print("runApp()"); runApp(Flwtch()); } @@ -42,48 +44,49 @@ class Flwtch extends StatefulWidget { class FlwtchState extends State { final TextStyle biggerFont = const TextStyle(fontSize: 18); late Cwtch cwtch; - bool cwtchInit = false; late ProfileInfoState selectedProfile; String selectedConversation = ""; var columns = [1]; // default or 'single column' mode //var columns = [1, 1, 2]; late ProfileListState profs; final MethodChannel notificationClickChannel = MethodChannel('im.cwtch.flwtch/notificationClickHandler'); + final MethodChannel shutdownMethodChannel = MethodChannel('im.cwtch.flwtch/shutdown'); final GlobalKey navKey = GlobalKey(); @override initState() { + print("Init state"); super.initState(); - cwtchInit = false; profs = ProfileListState(); notificationClickChannel.setMethodCallHandler(_externalNotificationClicked); - + shutdownMethodChannel.setMethodCallHandler(shutdown); + print("initState set cwtch..."); if (Platform.isAndroid) { - var cwtchNotifier = new CwtchNotifier(profs, globalSettings, globalErrorHandler, globalTorStatus, NullNotificationsManager()); + var cwtchNotifier = new CwtchNotifier(profs, globalSettings, globalErrorHandler, globalTorStatus, NullNotificationsManager(), globalAppState); cwtch = CwtchGomobile(cwtchNotifier); } else if (Platform.isLinux) { - var cwtchNotifier = new CwtchNotifier(profs, globalSettings, globalErrorHandler, globalTorStatus, LinuxNotificationsManager()); + var cwtchNotifier = new CwtchNotifier(profs, globalSettings, globalErrorHandler, globalTorStatus, LinuxNotificationsManager(), globalAppState); cwtch = CwtchFfi(cwtchNotifier); } else { - var cwtchNotifier = new CwtchNotifier(profs, globalSettings, globalErrorHandler, globalTorStatus, NullNotificationsManager()); + var cwtchNotifier = new CwtchNotifier(profs, globalSettings, globalErrorHandler, globalTorStatus, NullNotificationsManager(), globalAppState); cwtch = CwtchFfi(cwtchNotifier); } - + print("initState cwtch.Start()..."); cwtch.Start(); - setState(() { - cwtchInit = true; - }); + print("initState done!"); } ChangeNotifierProvider getTorStatusProvider() => ChangeNotifierProvider.value(value: globalTorStatus); ChangeNotifierProvider getErrorHandlerProvider() => ChangeNotifierProvider.value(value: globalErrorHandler); ChangeNotifierProvider getSettingsProvider() => ChangeNotifierProvider.value(value: globalSettings); + ChangeNotifierProvider getAppStateProvider() => ChangeNotifierProvider.value(value: globalAppState); Provider getFlwtchStateProvider() => Provider(create: (_) => this); ChangeNotifierProvider getProfileListProvider() => ChangeNotifierProvider(create: (context) => profs); @override Widget build(BuildContext context) { + print("build()"); //appStatus = AppModel(cwtch: cwtch); globalSettings.initPackageInfo(); return MultiProvider( @@ -93,10 +96,11 @@ class FlwtchState extends State { getSettingsProvider(), getErrorHandlerProvider(), getTorStatusProvider(), + getAppStateProvider(), ], builder: (context, widget) { - return Consumer( - builder: (context, settings, child) => MaterialApp( + return Consumer2( + builder: (context, settings, appState, child) => MaterialApp( key: Key('app'), navigatorKey: navKey, locale: settings.locale, @@ -104,13 +108,26 @@ class FlwtchState extends State { supportedLocales: AppLocalizations.supportedLocales, title: 'Cwtch', theme: mkThemeData(settings), - home: cwtchInit == true ? (columns.length == 3 ? TripleColumnView() : ShiftRightFixer(child: ProfileMgrView())) : SplashView(), + home: appState.cwtchInit == true ? (columns.length == 3 ? TripleColumnView() : ShiftRightFixer(child: ProfileMgrView())) : SplashView(), ), ); }, ); } + Future shutdown(MethodCall call) async { + cwtch.Shutdown(); + // Wait a few seconds as shutting down things takes a little time.. + Future.delayed(Duration(seconds: 2)).then((value) { + if (Platform.isAndroid) { + SystemNavigator.pop(); + } else if (Platform.isLinux || Platform.isWindows) { + print("Exiting..."); + exit(0); + } + }); + } + Future _externalNotificationClicked(MethodCall call) async { var args = jsonDecode(call.arguments); var profile = profs.getProfile(args["ProfileOnion"])!; diff --git a/lib/model.dart b/lib/model.dart index db689da..93d6f34 100644 --- a/lib/model.dart +++ b/lib/model.dart @@ -61,6 +61,21 @@ class ProfileListState extends ChangeNotifier { } } +class AppState extends ChangeNotifier { + bool cwtchInit = false; + String appError = ""; + + void SetCwtchInit() { + cwtchInit = true; + notifyListeners(); + } + + void SetAppError(String error) { + appError = error; + notifyListeners(); + } +} + class ContactListState extends ChangeNotifier { List _contacts = []; String _filter = ""; diff --git a/lib/views/profilemgrview.dart b/lib/views/profilemgrview.dart index 1c8468b..ce2d23f 100644 --- a/lib/views/profilemgrview.dart +++ b/lib/views/profilemgrview.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import 'dart:io'; import 'package:cwtch/cwtch_icons_icons.dart'; import 'package:flutter/material.dart'; @@ -6,6 +7,7 @@ import 'package:cwtch/settings.dart'; import 'package:cwtch/views/torstatusview.dart'; import 'package:cwtch/widgets/passwordfield.dart'; import 'package:cwtch/widgets/tor_icon.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:cwtch/widgets/profilerow.dart'; import 'package:provider/provider.dart'; @@ -26,6 +28,8 @@ class ProfileMgrView extends StatefulWidget { class _ProfileMgrViewState extends State { final ctrlrPassword = TextEditingController(); + bool closeApp = false; + @override void dispose() { ctrlrPassword.dispose(); @@ -39,7 +43,10 @@ class _ProfileMgrViewState extends State { // (which would shutdown connections and all kinds of other expensive to generate things) // TODO pop up a dialogue regarding closing the app? builder: (context, settings, child) => WillPopScope( - onWillPop: () async => false, + onWillPop: () async { + _showShutdown(); + return closeApp; + }, child: Scaffold( backgroundColor: settings.theme.backgroundMainColor(), appBar: AppBar( @@ -86,9 +93,6 @@ class _ProfileMgrViewState extends State { )); // Only show debug button on development builds - if (EnvironmentConfig.BUILD_VER == dev_version) { - actions.add(IconButton(icon: Icon(Icons.bug_report_outlined), tooltip: "Turn on Debug Logging", onPressed: _setLoggingLevelDebug)); - } // Unlock Profiles actions.add(IconButton( @@ -100,16 +104,45 @@ class _ProfileMgrViewState extends State { // Global Settings actions.add(IconButton(icon: Icon(Icons.settings), tooltip: AppLocalizations.of(context)!.tooltipOpenSettings, onPressed: _pushGlobalSettings)); + actions.add(IconButton(icon: Icon(Icons.close), tooltip: AppLocalizations.of(context)!.shutdownCwtchTooltip, onPressed: _showShutdown)); + return actions; } - void _setLoggingLevelDebug() { - final setLoggingLevel = { - "EventType": "SetLoggingLevel", - "Data": {"Debug": "true"}, - }; - final setLoggingLevelJson = jsonEncode(setLoggingLevel); - Provider.of(context, listen: false).cwtch.SendAppEvent(setLoggingLevelJson); + _showShutdown() { + // set up the buttons + Widget cancelButton = TextButton( + child: Text(AppLocalizations.of(context)!.cancel), + onPressed: () { + Navigator.of(context).pop(); // dismiss dialog + }, + ); + Widget continueButton = TextButton( + child: Text(AppLocalizations.of(context)!.shutdownCwtchAction), + onPressed: () { + // Directly call the shutdown command, Android will do this for us... + Provider.of(context, listen: false).shutdown(MethodCall("")); + closeApp = true; + }); + + // set up the AlertDialog + AlertDialog alert = AlertDialog( + title: Text(AppLocalizations.of(context)!.shutdownCwtchDialogTitle), + content: Text(AppLocalizations.of(context)!.shutdownCwtchDialog), + actions: [ + cancelButton, + continueButton, + ], + ); + + // show the dialog + showDialog( + context: context, + barrierDismissible: false, + builder: (BuildContext context) { + return alert; + }, + ); } void _pushGlobalSettings() { diff --git a/lib/views/splashView.dart b/lib/views/splashView.dart index 3b18b5d..78ffaf3 100644 --- a/lib/views/splashView.dart +++ b/lib/views/splashView.dart @@ -1,11 +1,37 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../model.dart'; +import '../settings.dart'; class SplashView extends StatelessWidget { @override Widget build(BuildContext context) { - return const Scaffold( - body: const Center(child: const Text("Loading Cwtch...")), - ); + return Consumer( + builder: (context, appState, child) => Scaffold( + body: Center( + child: Column(mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ + Image( + image: AssetImage("assets/knott.png"), + filterQuality: FilterQuality.medium, + isAntiAlias: true, + width: 200, + height: 200, + ), + Image( + image: AssetImage("assets/cwtch_title.png"), + filterQuality: FilterQuality.medium, + isAntiAlias: true, + ), + Padding( + padding: const EdgeInsets.all(20.0), + child: Text(appState.appError == "" ? "Loading Cwtch..." : appState.appError, + style: TextStyle( + fontSize: 16.0, color: appState.appError == "" ? Provider.of(context).theme.mainTextColor() : Provider.of(context).theme.textfieldErrorColor())), + ), + Image(image: AssetImage("assets/Open_Privacy_Logo_lightoutline.png")), + ])), + )); } } diff --git a/lib/widgets/profilerow.dart b/lib/widgets/profilerow.dart index 7edbc36..36345c3 100644 --- a/lib/widgets/profilerow.dart +++ b/lib/widgets/profilerow.dart @@ -66,7 +66,6 @@ class _ProfileRowState extends State { onTap: () { setState(() { var flwtch = Provider.of(context, listen: false); - flwtch.cwtch.SelectProfile(profile.onion); flwtch.setState(() { flwtch.selectedProfile = profile; flwtch.selectedConversation = "";