From 2cce041a49720db41390324dbf211d662792e1d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr>
Date: Sat, 22 May 2021 19:04:19 +0200
Subject: [PATCH] Add minimal empty application

---
 .gitignore                                    |  46 ++
 .gitlab-ci.yml                                |  77 +++
 .metadata                                     |  10 +
 README.md                                     |   3 +-
 android/.gitignore                            |  11 +
 android/app/build.gradle                      |  70 +++
 android/app/src/debug/AndroidManifest.xml     |   7 +
 android/app/src/main/AndroidManifest.xml      |  41 ++
 .../benoitharrault/sortgame/MainActivity.java |   6 +
 .../res/drawable-v21/launch_background.xml    |  12 +
 .../main/res/drawable/launch_background.xml   |  12 +
 .../src/main/res/mipmap-hdpi/ic_launcher.png  | Bin 0 -> 1637 bytes
 .../src/main/res/mipmap-mdpi/ic_launcher.png  | Bin 0 -> 1078 bytes
 .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 1967 bytes
 .../main/res/mipmap-xxhdpi/ic_launcher.png    | Bin 0 -> 3495 bytes
 .../main/res/mipmap-xxxhdpi/ic_launcher.png   | Bin 0 -> 4873 bytes
 .../app/src/main/res/values-night/styles.xml  |  18 +
 android/app/src/main/res/values/styles.xml    |  18 +
 android/app/src/profile/AndroidManifest.xml   |   7 +
 android/build.gradle                          |  29 ++
 android/gradle.properties                     |   5 +
 .../gradle/wrapper/gradle-wrapper.properties  |   6 +
 android/settings.gradle                       |  11 +
 icons/build_icons.sh                          |  48 ++
 icons/icon.svg                                |  83 +++
 ios/.gitignore                                |  33 ++
 ios/Flutter/AppFrameworkInfo.plist            |  26 +
 ios/Flutter/Debug.xcconfig                    |   1 +
 ios/Flutter/Release.xcconfig                  |   1 +
 ios/Runner.xcodeproj/project.pbxproj          | 472 ++++++++++++++++++
 .../contents.xcworkspacedata                  |   7 +
 .../xcshareddata/IDEWorkspaceChecks.plist     |   8 +
 .../xcshareddata/WorkspaceSettings.xcsettings |   8 +
 .../xcshareddata/xcschemes/Runner.xcscheme    |  91 ++++
 .../contents.xcworkspacedata                  |   7 +
 .../xcshareddata/IDEWorkspaceChecks.plist     |   8 +
 .../xcshareddata/WorkspaceSettings.xcsettings |   8 +
 ios/Runner/AppDelegate.h                      |   6 +
 ios/Runner/AppDelegate.m                      |  13 +
 .../AppIcon.appiconset/Contents.json          | 122 +++++
 .../Icon-App-1024x1024@1x.png                 | Bin 0 -> 10932 bytes
 .../AppIcon.appiconset/Icon-App-20x20@1x.png  | Bin 0 -> 564 bytes
 .../AppIcon.appiconset/Icon-App-20x20@2x.png  | Bin 0 -> 1283 bytes
 .../AppIcon.appiconset/Icon-App-20x20@3x.png  | Bin 0 -> 1588 bytes
 .../AppIcon.appiconset/Icon-App-29x29@1x.png  | Bin 0 -> 1025 bytes
 .../AppIcon.appiconset/Icon-App-29x29@2x.png  | Bin 0 -> 1716 bytes
 .../AppIcon.appiconset/Icon-App-29x29@3x.png  | Bin 0 -> 1920 bytes
 .../AppIcon.appiconset/Icon-App-40x40@1x.png  | Bin 0 -> 1283 bytes
 .../AppIcon.appiconset/Icon-App-40x40@2x.png  | Bin 0 -> 1895 bytes
 .../AppIcon.appiconset/Icon-App-40x40@3x.png  | Bin 0 -> 2665 bytes
 .../AppIcon.appiconset/Icon-App-60x60@2x.png  | Bin 0 -> 2665 bytes
 .../AppIcon.appiconset/Icon-App-60x60@3x.png  | Bin 0 -> 3831 bytes
 .../AppIcon.appiconset/Icon-App-76x76@1x.png  | Bin 0 -> 1888 bytes
 .../AppIcon.appiconset/Icon-App-76x76@2x.png  | Bin 0 -> 3294 bytes
 .../Icon-App-83.5x83.5@2x.png                 | Bin 0 -> 3612 bytes
 .../LaunchImage.imageset/Contents.json        |  23 +
 .../LaunchImage.imageset/LaunchImage.png      | Bin 0 -> 68 bytes
 .../LaunchImage.imageset/LaunchImage@2x.png   | Bin 0 -> 68 bytes
 .../LaunchImage.imageset/LaunchImage@3x.png   | Bin 0 -> 68 bytes
 .../LaunchImage.imageset/README.md            |   5 +
 ios/Runner/Base.lproj/LaunchScreen.storyboard |  37 ++
 ios/Runner/Base.lproj/Main.storyboard         |  26 +
 ios/Runner/Info.plist                         |  45 ++
 ios/Runner/main.m                             |   9 +
 lib/main.dart                                 |  29 ++
 lib/provider/data.dart                        |  27 +
 lib/screens/home.dart                         |  57 +++
 pubspec.lock                                  | 161 ++++++
 pubspec.yaml                                  |  21 +
 test/widget_test.dart                         |  14 +
 70 files changed, 1783 insertions(+), 2 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 .gitlab-ci.yml
 create mode 100644 .metadata
 create mode 100644 android/.gitignore
 create mode 100644 android/app/build.gradle
 create mode 100644 android/app/src/debug/AndroidManifest.xml
 create mode 100644 android/app/src/main/AndroidManifest.xml
 create mode 100644 android/app/src/main/java/org/benoitharrault/sortgame/MainActivity.java
 create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml
 create mode 100644 android/app/src/main/res/drawable/launch_background.xml
 create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png
 create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png
 create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
 create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
 create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
 create mode 100644 android/app/src/main/res/values-night/styles.xml
 create mode 100644 android/app/src/main/res/values/styles.xml
 create mode 100644 android/app/src/profile/AndroidManifest.xml
 create mode 100644 android/build.gradle
 create mode 100644 android/gradle.properties
 create mode 100644 android/gradle/wrapper/gradle-wrapper.properties
 create mode 100644 android/settings.gradle
 create mode 100755 icons/build_icons.sh
 create mode 100644 icons/icon.svg
 create mode 100644 ios/.gitignore
 create mode 100644 ios/Flutter/AppFrameworkInfo.plist
 create mode 100644 ios/Flutter/Debug.xcconfig
 create mode 100644 ios/Flutter/Release.xcconfig
 create mode 100644 ios/Runner.xcodeproj/project.pbxproj
 create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
 create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
 create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
 create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
 create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata
 create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
 create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
 create mode 100644 ios/Runner/AppDelegate.h
 create mode 100644 ios/Runner/AppDelegate.m
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
 create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
 create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
 create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
 create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
 create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
 create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard
 create mode 100644 ios/Runner/Base.lproj/Main.storyboard
 create mode 100644 ios/Runner/Info.plist
 create mode 100644 ios/Runner/main.m
 create mode 100644 lib/main.dart
 create mode 100644 lib/provider/data.dart
 create mode 100644 lib/screens/home.dart
 create mode 100644 pubspec.lock
 create mode 100644 pubspec.yaml
 create mode 100644 test/widget_test.dart

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0fa6b67
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,46 @@
+# Miscellaneous
+*.class
+*.log
+*.pyc
+*.swp
+.DS_Store
+.atom/
+.buildlog/
+.history
+.svn/
+
+# IntelliJ related
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# The .vscode folder contains launch configuration and tasks you configure in
+# VS Code which you may wish to be included in version control, so this line
+# is commented out by default.
+#.vscode/
+
+# Flutter/Dart/Pub related
+**/doc/api/
+**/ios/Flutter/.last_build_id
+.dart_tool/
+.flutter-plugins
+.flutter-plugins-dependencies
+.packages
+.pub-cache/
+.pub/
+/build/
+
+# Web related
+lib/generated_plugin_registrant.dart
+
+# Symbolication related
+app.*.symbols
+
+# Obfuscation related
+app.*.map.json
+
+# Android Studio will place build artifacts here
+/android/app/debug
+/android/app/profile
+/android/app/release
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..5ea98c2
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,77 @@
+image: cirrusci/flutter:latest
+
+stages:
+  - update
+  - build-debug
+  - build-release
+  - deploy
+
+update:
+  stage: update
+  script:
+    - flutter packages get
+    - flutter packages upgrade
+  interruptible: true
+
+android:build-debug:
+  stage: build-debug
+  script:
+    # Flutter local configuration
+    - echo flutter.sdk=$FLUTTER_PATH > android/local.properties
+    - echo sdk.dir=$ANDROID_SDK_PATH >> android/local.properties
+    - echo flutter.buildMode=debug >> android/local.properties
+    # Android signing
+    - echo "$ANDROID_DEBUG_KEYSTORE_FILE" | base64 -d > android/app/my.keystore
+    - echo storeFile=my.keystore > android/key.properties
+    - echo storePassword=$ANDROID_DEBUG_KEYSTORE_PASSWORD >> android/key.properties
+    - echo keyAlias=$ANDROID_DEBUG_KEY_ALIAS >> android/key.properties
+    - echo keyPassword=$ANDROID_DEBUG_KEY_PASSWORD >> android/key.properties
+    # build flutter app
+    - flutter packages get
+    - flutter clean
+    - flutter build apk --debug
+    # prepare artifact
+    - find . -name "*.apk" # where is my apk?
+  artifacts:
+    paths:
+      - build/app/outputs/apk/debug
+    expire_in: 1 week
+  interruptible: true
+
+android:build-release:
+  stage: build-release
+  only:
+    - master
+  dependencies:
+    - android:build-debug
+  script:
+    # Flutter local configuration
+    - echo flutter.sdk=$FLUTTER_PATH > android/local.properties
+    - echo sdk.dir=$ANDROID_SDK_PATH >> android/local.properties
+    - echo flutter.buildMode=release >> android/local.properties
+    # Android signing
+    - echo "$ANDROID_KEYSTORE_FILE" | base64 -d > android/app/my.keystore
+    - echo storeFile=my.keystore > android/key.properties
+    - echo storePassword=$ANDROID_KEYSTORE_PASSWORD >> android/key.properties
+    - echo keyAlias=$ANDROID_KEY_ALIAS >> android/key.properties
+    - echo keyPassword=$ANDROID_KEY_PASSWORD >> android/key.properties
+    # build flutter app
+    - flutter packages get
+    - flutter clean
+    - flutter build apk --release
+    # prepare artifact
+    - find . -name "*.apk" # where is my apk?
+  artifacts:
+    paths:
+      - build/app/outputs/apk/release
+    expire_in: 1 week
+  interruptible: true
+
+android:deploy:
+  stage: deploy
+  only:
+    - master
+  dependencies:
+    - android:build-release
+  script:
+    - wget ${REPOSITORY_UPDATE_WEBHOOK}?token=${REPOSITORY_TOKEN}
diff --git a/.metadata b/.metadata
new file mode 100644
index 0000000..b2896b2
--- /dev/null
+++ b/.metadata
@@ -0,0 +1,10 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled and should not be manually edited.
+
+version:
+  revision: 5bedb7b1d5698ce2c1c67aaf9afae7b3948b172a
+  channel: beta
+
+project_type: app
diff --git a/README.md b/README.md
index ad1fe2a..328e6f9 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1 @@
-# org.benoitharrault.sortgame
-
+# Sorting game
diff --git a/android/.gitignore b/android/.gitignore
new file mode 100644
index 0000000..0a741cb
--- /dev/null
+++ b/android/.gitignore
@@ -0,0 +1,11 @@
+gradle-wrapper.jar
+/.gradle
+/captures/
+/gradlew
+/gradlew.bat
+/local.properties
+GeneratedPluginRegistrant.java
+
+# Remember to never publicly share your keystore.
+# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
+key.properties
diff --git a/android/app/build.gradle b/android/app/build.gradle
new file mode 100644
index 0000000..b7b8062
--- /dev/null
+++ b/android/app/build.gradle
@@ -0,0 +1,70 @@
+def localProperties = new Properties()
+def localPropertiesFile = rootProject.file('local.properties')
+if (localPropertiesFile.exists()) {
+    localPropertiesFile.withReader('UTF-8') { reader ->
+        localProperties.load(reader)
+    }
+}
+
+def gradleProperties = new Properties()
+def gradlePropertiesFile = rootProject.file('gradle.properties')
+if (gradlePropertiesFile.exists()) {
+    gradlePropertiesFile.withReader('UTF-8') { reader ->
+        gradleProperties.load(reader)
+    }
+}
+
+def flutterRoot = localProperties.getProperty('flutter.sdk')
+if (flutterRoot == null) {
+    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
+}
+
+def appVersionCode = gradleProperties.getProperty('app.versionCode')
+if (appVersionCode == null) {
+    appVersionCode = '1'
+}
+
+def appVersionName = gradleProperties.getProperty('app.versionName')
+if (appVersionName == null) {
+    appVersionName = '1.0'
+}
+
+apply plugin: 'com.android.application'
+apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
+
+def keystoreProperties = new Properties()
+def keystorePropertiesFile = rootProject.file('key.properties')
+if (keystorePropertiesFile.exists()) {
+    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
+}
+
+android {
+    compileSdkVersion 30
+
+    defaultConfig {
+        applicationId "org.benoitharrault.sortgame"
+        minSdkVersion 16
+        targetSdkVersion 30
+        versionCode appVersionCode.toInteger()
+        versionName appVersionName
+        archivesBaseName = "$applicationId" + "_" + "$versionCode"
+    }
+
+    signingConfigs {
+        release {
+            keyAlias keystoreProperties['keyAlias']
+            keyPassword keystoreProperties['keyPassword']
+            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
+            storePassword keystoreProperties['storePassword']
+        }
+    }
+    buildTypes {
+        release {
+            signingConfig signingConfigs.release
+        }
+    }
+}
+
+flutter {
+    source '../..'
+}
diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml
new file mode 100644
index 0000000..8c1c187
--- /dev/null
+++ b/android/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,7 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="org.benoitharrault.sortgame">
+    <!-- Flutter needs it to communicate with the running application
+         to allow setting breakpoints, to provide hot reload, etc.
+    -->
+    <uses-permission android:name="android.permission.INTERNET"/>
+</manifest>
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..b7cf39d
--- /dev/null
+++ b/android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,41 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="org.benoitharrault.sortgame">
+   <application
+        android:label="sortgame"
+        android:icon="@mipmap/ic_launcher">
+        <activity
+            android:name=".MainActivity"
+            android:launchMode="singleTop"
+            android:theme="@style/LaunchTheme"
+            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
+            android:hardwareAccelerated="true"
+            android:windowSoftInputMode="adjustResize">
+            <!-- Specifies an Android theme to apply to this Activity as soon as
+                 the Android process has started. This theme is visible to the user
+                 while the Flutter UI initializes. After that, this theme continues
+                 to determine the Window background behind the Flutter UI. -->
+            <meta-data
+              android:name="io.flutter.embedding.android.NormalTheme"
+              android:resource="@style/NormalTheme"
+              />
+            <!-- Displays an Android View that continues showing the launch screen
+                 Drawable until Flutter paints its first frame, then this splash
+                 screen fades out. A splash screen is useful to avoid any visual
+                 gap between the end of Android's launch screen and the painting of
+                 Flutter's first frame. -->
+            <meta-data
+              android:name="io.flutter.embedding.android.SplashScreenDrawable"
+              android:resource="@drawable/launch_background"
+              />
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+        <!-- Don't delete the meta-data below.
+             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
+        <meta-data
+            android:name="flutterEmbedding"
+            android:value="2" />
+    </application>
+</manifest>
diff --git a/android/app/src/main/java/org/benoitharrault/sortgame/MainActivity.java b/android/app/src/main/java/org/benoitharrault/sortgame/MainActivity.java
new file mode 100644
index 0000000..f64742b
--- /dev/null
+++ b/android/app/src/main/java/org/benoitharrault/sortgame/MainActivity.java
@@ -0,0 +1,6 @@
+package org.benoitharrault.sortgame;
+
+import io.flutter.embedding.android.FlutterActivity;
+
+public class MainActivity extends FlutterActivity {
+}
diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml
new file mode 100644
index 0000000..f74085f
--- /dev/null
+++ b/android/app/src/main/res/drawable-v21/launch_background.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Modify this file to customize your launch splash screen -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="?android:colorBackground" />
+
+    <!-- You can insert your own image assets here -->
+    <!-- <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@mipmap/launch_image" />
+    </item> -->
+</layer-list>
diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml
new file mode 100644
index 0000000..304732f
--- /dev/null
+++ b/android/app/src/main/res/drawable/launch_background.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Modify this file to customize your launch splash screen -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@android:color/white" />
+
+    <!-- You can insert your own image assets here -->
+    <!-- <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@mipmap/launch_image" />
+    </item> -->
+</layer-list>
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..f9ede29e6d899a45ad2a33b097d0f0f13c9a236a
GIT binary patch
literal 1637
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

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..562182a3f87e46767a295bb8f34448ef7d947844
GIT binary patch
literal 1078
zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4rT@hhJ-tuTNxM_I14-?iy0UsmVq$i?8^I*
z3=9mCC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)l_6PWcxH2F>14AeX
zI5;>M8yjnDYpZ~Or-FlnjHRWNF$n1C>1k^_sH<D6TU)D`n=2U`D;O9k7&z$a+GuNA
zYFk=rn3*Z-S?QRYYnz&C8r!PrTdJ6wE1Q~X7+9$5nW-3CDI0;*Xqefkn^<q&Yq@Tp
z^~DD<R~|$jxL|Sqj`M}P&Ic}7Y(HkP<GAIe2Z5(=S)RRPdG?O=&f`$VxjWY9?%JNa
zYj^&x{rS5N7w$S;xaWM~p38-Mt{3jPUA*Uh@xJH9`(BssdtbWmbLoNK<p%+m9|m6m
zq0noOW3E3=yzw~s#*>trPcm*lE4cHl=+3j^JI_k)JTJZTyzJhK>U%G0@4u+O|FYr!
z%ce)K`yRiU_~gyhr*Eb`dpGy_yZO)GEqL*M@r(CMUcO)c>cgs6AJ)A6wC(NZ9dAGH
zeD`_x`_KE{f7$=x%c0NTFMR)b|L5-)zka{^{pbCkzn}j6{ru<emp^~M{{8#y@4xSV
z|NZ#;@8`dNzyAIE{qNtOfB*mf2cdue|NoDl{+pYDfx)~a$S;_Ik%@_!nT3^&ot=Y|
zi;J6wmzR%UKtNDPNLWl<LQ+~rRzXo&MNLgTFeo_q(c{NYo<4p0_wV27HnM^Y42(}b
zT^vI^I?rCa8GhM8g7t$Mucvq5v@owiN3+zxDYY8WH^mQba%Mc(<jCR`=)l6Lxwn2t
zq?FWzb38T$d;GsY{QWe=@7b9n4=Z+Xe7Q46Om*fgoxmM-?@xXGH7}*-{PgD&-#+qv
z%wgQS)#=yI_Z;r8QqsFR-igUwc=XkyP2kC&G`R~gK`+F37yS6?aP+dwa>f`&yAQ8s
zvUdG+xcb?Bd&51Clv}SZPxR0iKEt?wO&!mff9wfD9^aNso6Mp%bHRV6j#;K$e_kdt
zZDNmES1NRAV;ScWPU#+5#vAdxuKtbl7t1vG$Ye3OOUv(n*UrhWaCqYqKfnDY!g>b(
z{(cUzSvXl<zT&_K#)2J2-`;NDH-(XJ!(!e%enF!xYp3d(am;0&opzVyoRiOj+Dx8V
zr4FkT)n>5vt*v7^V{q_Ltoi*va~+=V+QmI*^(!OA)2mjktq+fVzo;QW#!bk(MMw3F
zT>j#{K?Z4O>M#9%)M|L&FTPptOl9zr=f=8L5}TiuCeA*;!}M0}eXX3?%X8lIY-BvQ
z_|sR>2R1$0YY#_!`_y=8QO@Tb(`|fh7M%QVQF@;9QnlQNYr5UnRKtVspYn0u`u3Tq
z$ouY1TwbT**=!am%Q~LY`@pX8@psXa*XFx}!(ygrbbUF0o>{xE`k6lO#|d6qPagPy
Oa<QkYpUXO@geCykU<qab

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f37ccfd28167a5b98a8891861f8522c347e25e1
GIT binary patch
literal 1967
zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4rT@hhO2JvAPLR_kH}&M218#EW;8!3FVDch
zAX(xXQ4*Y=R#Ki=l*&+EUaps!mtCBkSdglhUz9%kosAR&15-zUPlzi60yHo*G%zrP
zGK7Kvg98W{8yjnDYpZ~Or-Fimf`fyMrKOZH2<YkQX@h`+y1KQxwY7@5xstK5f`Ng8
zfrFf`jjpbZwzj3VrKN_MnVPY&ilMEto|U4GxuUtbj=8zEsi~&1v8J)Dx}mk2zNLzu
zxr({DvZ<+(v9Y$X&E_LEnub<u_gZNfSghafpk`{SW@>ZzR;G%vm9mkgl7YFVfw_jh
znTDB}x{0-#v8Ae!g^Hp1hC}A3ZpUA^9eMg%_@@1qTMt`qIAC$*e*ETxmX{wyUVadH
z?Qz`teU=;cTkbz+dGNgDg?sK7@3~)l9DDsy%#BA0n+{rDe;9x2rsdf?mgnx;oVjDU
z>7eC~W0pIQTOK-ZdE~O?(JLUSvv;h{-myM+$NJn|n{#*V&fm2^f7jvsUB~nHoG#pR
zzHraw!acW(_uMbu_q=r9`_coyOAq`nKM1(|F!%}xg<N?Udi7!W)kjg+9>rdNoN)bd
z;`PT#H=d;2c#?MWNye?G*|(nN-hP^Y`&q&5XN7m3m)?C|aqmUl{TKE3Uo_l**>L}5
z(}R~S4_>xDc-8jsRr|wNoey7iJ$l{q_;vr|*At$+neyb#)TeK!KYcsn+1uIA-p+aU
zZqD;}^Pj(8^y2;E7w?z8c)#rB`(-abtbF-l)hiHM^XkLeS0C5D{<!Y-#|^JPZhZ4`
z)0<CQ-hSHl_VbQ+pLf0cy!+kfJ?}p6egApi`!D<7e>wQ!%b^cnk9_)e=F_*cpTC{|
z^8M1+AJ@MAxc=?u?e9PD|M>Or*YB6Ve!u$l`}MCsZ+`uG`}^<5KYu^}`TOP1->-lF
ze*63H``>>*{{H*<@87R~|9=1b|Mx!#{rms_{~E7Zr3?%VaV0^1!3>N{Oiawo%q%Rd
zZ0zhD9GqNS+&nzIynOru0)m1<Lc$`VV&dZB5|WZq(lRo#a&mI=@(Kz{N=nKqs;X*g
z>Kd9_TH4w=>(_7Gv}McIt#99f!G{kYKmPvx`;T(<VKD{<7CTQD$B>MBZ)bfE7mk!@
zo2k%joIJ}=F)&#uDcyB?=*I8&!mi&d)8&+Kbls33z9C$sI{xC;go91**6muiqGO%f
zA+FEwEoNG`RJXJEsl}h$_~GA_%JV0GtL!xWzT437?5}q&u4|S(3f)-3(iOZ?%9-P%
z$>Acwj#SAg*Vc3WsTRHG5)8DaF5K#OwoNTStL^e^ov_)lD|5oS1EnW9^v*P@mTq|F
z_d<M&?23z<i;Qd-PMw))>2-C1HRoIFn~#|$r3?9<u9`gI{F#Er%w4l4e^smht=GV;
zWAN(awq+r@mVaw34%AdfFEl@z*kBQs-o{c=9@U$*?4NdkN%{sRCb4gRURz$=U~tG_
z+<KCcQ)0@cqgf9!covwdJ2AB_E!%#Q(a+<+hku@B%A6ZYT3C7{E*#Fw5shtl{F_l^
zimgydP~QAcyHi;i8iekx=h_*ocuVzcLq5j`x4iv~%p%>MaXa6NzD;5{AZgfn-(%P8
ziPcgJ8>C%h)$Rs8dB@1GW{uF|fA<?_@6K}h{Ftj_=L^GM8$#P(t!2J?VmH6h&8Jrv
zne5AvHM;gsQ*!>c180_%FR{5-p1b!$#ky7ResWzXnfq~%-o*8llb(N)sq2)RSH0j`
z^P2h}RkpWhPusRWrsCuKtR1ZBKa+b7?AMB!78mmKy4MNOv#~$=9Nv_t?`oWWX3iyl
zi$^cnZkYZ&(HwJqS-Yvk!(>5)1Ap1ihsU2Sdm8tT-#MnZnK5s{`It=?r<QILQg&eM
zV{<#m`tbe5i_;ko6-qdqtJZw~^`FT{cIya5$$O>>4N02oN<!yueiSEM>>AOqWxK{3
zp}cwS_imRk90<#Nr1<;H{S#-I8AKMXn7d?l{~ck5hVG=GuSS=A-M!DfXJ~kx6twh?
z+vA673=i~PExLHSVrt#j2J4G#clyj8gneOnz1L>tt>n7hE5g#Mi$$4?PCxa${pVYm
z<#rqAm;O_}HgSCNynVTeKc#NlCo=_(eFwfxS715Gzj&fy6aVeF<d%e=55Fv8IOv{p
zpSfkh&&1N;PKRgg90xximS$ISoTo47^rU^K8h1<EPbI~Wx*fNty_xhUq3qw;H_tvV
z(wDyQAVA<tM6t_%xlhTy4~j2eQK^<@THwiG`&0JP?r8QmPt4mEMN8&RXt?sk@9h_z
z!e8sQJIK9PFW;!1@$vEB2)E=G7K_|x*J5ng7G#83^Ya;;PrCH@D`&m&<v02T4VhNF
z$1jLPs&+~57tyLe8L@GR=Si;2+GToCdsrO0>wo`L-<7!3PoZay#q)56vy$JFyBCzE
z{;x2*xqImnJ{g;knQZ(oX5ZPlx4t3p;Oe~}4`mdT{9Tyd<@D9d?^TNbg^jvSSE^et
zE-;I*vJjekuFva9iJH}|*<UOEPp@a475bV-ZS&2XK!u07X_Fm~8}?2)a<prA)anQ+
z)8pH6)~xd9JlvS36ksEJ`^8$ulGlz)V|?#bcl^jYYF=^miE+!W4RgJV1s*amFfe$!
L`njxgN@xNA$|Bii

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..f6b80ca926d57bbf48cf260934127b2ee9593ee8
GIT binary patch
literal 3495
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

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..b7b966b56e4228b65bcfadd96496d0235d2effcf
GIT binary patch
literal 4873
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

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml
new file mode 100644
index 0000000..449a9f9
--- /dev/null
+++ b/android/app/src/main/res/values-night/styles.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
+    <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
+        <!-- Show a splash screen on the activity. Automatically removed when
+             Flutter draws its first frame -->
+        <item name="android:windowBackground">@drawable/launch_background</item>
+    </style>
+    <!-- Theme applied to the Android Window as soon as the process has started.
+         This theme determines the color of the Android Window while your
+         Flutter UI initializes, as well as behind your Flutter UI while its
+         running.
+         
+         This Theme is only used starting with V2 of Flutter's Android embedding. -->
+    <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
+        <item name="android:windowBackground">?android:colorBackground</item>
+    </style>
+</resources>
diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..d74aa35
--- /dev/null
+++ b/android/app/src/main/res/values/styles.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
+    <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
+        <!-- Show a splash screen on the activity. Automatically removed when
+             Flutter draws its first frame -->
+        <item name="android:windowBackground">@drawable/launch_background</item>
+    </style>
+    <!-- Theme applied to the Android Window as soon as the process has started.
+         This theme determines the color of the Android Window while your
+         Flutter UI initializes, as well as behind your Flutter UI while its
+         running.
+         
+         This Theme is only used starting with V2 of Flutter's Android embedding. -->
+    <style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
+        <item name="android:windowBackground">?android:colorBackground</item>
+    </style>
+</resources>
diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml
new file mode 100644
index 0000000..8c1c187
--- /dev/null
+++ b/android/app/src/profile/AndroidManifest.xml
@@ -0,0 +1,7 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="org.benoitharrault.sortgame">
+    <!-- Flutter needs it to communicate with the running application
+         to allow setting breakpoints, to provide hot reload, etc.
+    -->
+    <uses-permission android:name="android.permission.INTERNET"/>
+</manifest>
diff --git a/android/build.gradle b/android/build.gradle
new file mode 100644
index 0000000..c9e3db0
--- /dev/null
+++ b/android/build.gradle
@@ -0,0 +1,29 @@
+buildscript {
+    repositories {
+        google()
+        jcenter()
+    }
+
+    dependencies {
+        classpath 'com.android.tools.build:gradle:4.1.0'
+    }
+}
+
+allprojects {
+    repositories {
+        google()
+        jcenter()
+    }
+}
+
+rootProject.buildDir = '../build'
+subprojects {
+    project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
+    project.evaluationDependsOn(':app')
+}
+
+task clean(type: Delete) {
+    delete rootProject.buildDir
+}
diff --git a/android/gradle.properties b/android/gradle.properties
new file mode 100644
index 0000000..bc2d95e
--- /dev/null
+++ b/android/gradle.properties
@@ -0,0 +1,5 @@
+org.gradle.jvmargs=-Xmx1536M
+android.useAndroidX=true
+android.enableJetifier=true
+app.versionName=0.0.1
+app.versionCode=1
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..bc6a58a
--- /dev/null
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Jun 23 08:50:38 CEST 2017
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
diff --git a/android/settings.gradle b/android/settings.gradle
new file mode 100644
index 0000000..44e62bc
--- /dev/null
+++ b/android/settings.gradle
@@ -0,0 +1,11 @@
+include ':app'
+
+def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
+def properties = new Properties()
+
+assert localPropertiesFile.exists()
+localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
+
+def flutterSdkPath = properties.getProperty("flutter.sdk")
+assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
+apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
diff --git a/icons/build_icons.sh b/icons/build_icons.sh
new file mode 100755
index 0000000..fefc393
--- /dev/null
+++ b/icons/build_icons.sh
@@ -0,0 +1,48 @@
+#! /bin/bash
+
+# Check dependencies
+command -v inkscape >/dev/null 2>&1 || { echo >&2 "I require inkscape but it's not installed. Aborting."; exit 1; }
+command -v scour >/dev/null 2>&1 || { echo >&2 "I require scour but it's not installed. Aborting."; exit 1; }
+command -v optipng >/dev/null 2>&1 || { echo >&2 "I require optipng but it's not installed. Aborting."; exit 1; }
+command -v convert >/dev/null 2>&1 || { echo >&2 "I require convert (imagemagick) but it's not installed. Aborting."; exit 1; }
+
+CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
+BASE_DIR="$(dirname "${CURRENT_DIR}")"
+
+SOURCE="${CURRENT_DIR}/icon.svg"
+OPTIPNG_OPTIONS="-preserve -quiet -o7"
+
+# optimize svg
+cp ${SOURCE} ${SOURCE}.tmp
+scour \
+    --remove-descriptive-elements \
+    --enable-id-stripping \
+    --enable-viewboxing \
+    --enable-comment-stripping \
+    --nindent=4 \
+    -i ${SOURCE}.tmp \
+    -o ${SOURCE}
+rm ${SOURCE}.tmp
+
+# build icons
+function build_icon() {
+  ICON_SIZE="$1"
+  TARGET="$2"
+
+  TARGET_PNG="${TARGET}.png"
+
+  inkscape \
+      --export-width=${ICON_SIZE} \
+      --export-height=${ICON_SIZE} \
+      --export-filename=${TARGET_PNG} \
+      ${SOURCE}
+
+  optipng ${OPTIPNG_OPTIONS} ${TARGET_PNG}
+}
+
+
+build_icon  72 ${BASE_DIR}/android/app/src/main/res/mipmap-hdpi/ic_launcher
+build_icon  48 ${BASE_DIR}/android/app/src/main/res/mipmap-mdpi/ic_launcher
+build_icon  96 ${BASE_DIR}/android/app/src/main/res/mipmap-xhdpi/ic_launcher
+build_icon 144 ${BASE_DIR}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher
+build_icon 192 ${BASE_DIR}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher
diff --git a/icons/icon.svg b/icons/icon.svg
new file mode 100644
index 0000000..3d923a1
--- /dev/null
+++ b/icons/icon.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 28.747 28.747" xmlns="http://www.w3.org/2000/svg">
+    <defs>
+        <filter id="filter6206-7" color-interpolation-filters="sRGB">
+            <feGaussianBlur stdDeviation="0.658125"/>
+        </filter>
+    </defs>
+    <g transform="translate(0 -1093.8)">
+        <path transform="matrix(1.0781 0 0 1.0641 -.093733 2.7509)" d="m4.4177 1028.2v1.6051h-1.6052v18.192h1.6052v2.1402h18.192v-2.1402h2.1402v-18.192h-2.1402v-1.6051z" fill="#263238" filter="url(#filter6206-7)" opacity=".2"/>
+        <rect x="2.9987" y="1096.8" width="22.749" height="22.749" rx="1.1973" ry="1.1974" fill="#cddc39"/>
+        <g transform="translate(-22.32 1056.5)">
+            <path d="m0 0h51.2v51.2h-51.2z" fill="none" stroke-width="1.0667"/>
+            <g transform="matrix(.33601 0 0 .33601 1.5296 73.043)">
+                <path d="m0 0h51.2v51.2h-51.2z" fill="none" stroke-width="1.0667"/>
+            </g>
+            <g transform="matrix(.37187 0 0 .37187 38.802 63.239)">
+                <path d="m0 0h51.2v51.2h-51.2z" fill="none" stroke-width="1.0667"/>
+                <g transform="matrix(2.6891 0 0 2.6891 -82.906 -48.45)">
+                    <path d="m0 0h51.2v51.2h-51.2z" fill="none" stroke-width="1.0667"/>
+                </g>
+            </g>
+        </g>
+        <path d="m4.1958 1096.8c-0.66332 0-1.1979 0.5346-1.1979 1.1979v0.3334c0-0.6634 0.53459-1.1979 1.1979-1.1979h20.354c0.66332 0 1.1979 0.5345 1.1979 1.1979v-0.3334c0-0.6633-0.5346-1.1979-1.1979-1.1979z" fill="#fff" opacity=".2"/>
+        <rect x="128" y="546.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="128" y="631.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="128" y="674.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="128" y="589.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="128" y="717.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="213.33" y="546.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="213.33" y="631.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="213.33" y="674.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="213.33" y="589.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="213.33" y="717.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="298.67" y="546.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="298.67" y="631.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="298.67" y="674.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="298.67" y="589.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="298.67" y="717.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="170.67" y="546.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="170.67" y="631.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="170.67" y="674.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="170.67" y="589.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="170.67" y="717.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="256" y="546.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="256" y="631.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="256" y="674.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="256" y="589.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="256" y="717.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="128" y="759.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="213.33" y="759.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="298.67" y="759.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="170.67" y="759.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="256" y="759.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="341.33" y="589.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="341.33" y="631.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="341.33" y="717.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="341.33" y="546.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="341.33" y="674.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="341.33" y="759.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/>
+        <rect x="160" y="578.52" width="192" height="192" fill="none" stroke-width="1.0667"/>
+        <g transform="matrix(.37344 0 0 .37344 4.7333 1097.4)">
+            <path d="m0 0h51.2v51.2h-51.2z" fill="none" stroke-width="1.0667"/>
+        </g>
+        <g transform="matrix(.36471 0 0 .36471 5.1356 1097.4)">
+            <path d="m0 0h51.2v51.2h-51.2z" fill="none" stroke-width="1.0667"/>
+        </g>
+        <g transform="matrix(.41585 0 0 .41585 84.325 1055.9)">
+            <g transform="matrix(.062269 0 0 .062269 -28.238 185.29)">
+                <g transform="matrix(38.618 0 0 38.618 14724 -13542)">
+                    <g transform="matrix(.71436 0 0 .71436 -400.52 188.34)">
+                        <path d="m1293.2-120.67c-181.75 0.2763-511.18 0.13525-699.05 0.13998-2.3216 10.413-3.593 21.251-3.593 32.384v114c207.65 0.73695 494.72 0.38136 706.23 0.3733v-114.37c0-11.18-1.2522-22.07-3.593-32.523zm-458.69 295.56c-78.385-4e-3 -158.85 0.17892-243.95 0.55995v138.63c286.34-0.39317 421.73-0.13827 706.23-0.32664v-137.75c-163.2-0.53005-311.22-1.1113-462.28-1.1199z" opacity="0" stroke-width="1.4932"/>
+                    </g>
+                </g>
+            </g>
+        </g>
+        <path d="m24.549 1119.5c0.66325 0 1.1979-0.5346 1.1979-1.1979v-0.3333c0 0.6632-0.53461 1.1978-1.1979 1.1978h-20.354c-0.66325 0-1.1979-0.5346-1.1979-1.1978v0.3333c0 0.6633 0.53461 1.1979 1.1979 1.1979z" fill="#263238" opacity=".2"/>
+    </g>
+    <g transform="matrix(0 .093095 -.093095 0 21.169 4.3191)" fill="#fff">
+        <path d="m101.97 77.073c2.498-5.92 4.616-10.564 6.354-13.932 1.304-2.498 2.526-4.603 3.667-6.314 1.14-1.711 2.525-3.381 4.154-5.01 1.631-1.63 3.504-2.853 5.623-3.667 2.117-0.815 4.48-1.222 7.088-1.222h20.856v15.643c0 0.706 0.257 1.317 0.773 1.833s1.127 0.774 1.833 0.774c0.761 0 1.386-0.244 1.873-0.733l26.072-26.071c0.49-0.489 0.734-1.113 0.734-1.874s-0.244-1.385-0.734-1.876l-25.99-25.99c-0.651-0.543-1.305-0.813-1.955-0.813-0.762 0-1.385 0.244-1.875 0.733-0.487 0.489-0.731 1.113-0.731 1.874v15.642h-20.856c-3.694 0-7.17 0.449-10.43 1.345-3.259 0.896-6.152 2.036-8.677 3.422-2.526 1.385-4.97 3.245-7.333 5.581-2.363 2.335-4.373 4.59-6.029 6.762s-3.395 4.888-5.214 8.147-3.286 6.111-4.399 8.555c-1.114 2.444-2.458 5.459-4.033 9.044-2.499 5.92-4.617 10.565-6.355 13.932-1.303 2.498-2.526 4.604-3.666 6.314-1.14 1.711-2.526 3.381-4.155 5.01-1.63 1.631-3.504 2.853-5.622 3.668-2.118 0.814-4.481 1.222-7.088 1.222h-18.25c-0.761 0-1.386 0.243-1.874 0.733-0.488 0.488-0.733 1.112-0.733 1.873v15.644c0 0.761 0.246 1.386 0.735 1.875s1.114 0.733 1.874 0.733h18.25c3.694 0 7.17-0.449 10.429-1.346 3.259-0.896 6.152-2.036 8.677-3.422 2.526-1.385 4.97-3.245 7.333-5.581 2.362-2.335 4.373-4.59 6.029-6.762 1.656-2.173 3.394-4.888 5.214-8.147 1.819-3.259 3.286-6.111 4.399-8.555s2.457-5.459 4.032-9.044z"/>
+        <path d="m37.607 46.927h18.25c2.39 0 4.603 0.394 6.64 1.182s3.748 1.738 5.133 2.852 2.77 2.648 4.155 4.603c1.385 1.956 2.485 3.681 3.3 5.174 0.814 1.494 1.819 3.463 3.014 5.907 4.183-9.831 7.903-17.245 11.162-22.242-8.69-12.221-19.825-18.332-33.404-18.332h-18.25c-0.761 0-1.386 0.244-1.874 0.733s-0.733 1.113-0.733 1.874v15.643c0 0.761 0.244 1.384 0.733 1.873s1.114 0.733 1.874 0.733z"/>
+        <path d="m154.28 81.637c-0.652-0.543-1.305-0.813-1.957-0.813-0.76 0-1.385 0.244-1.873 0.733-0.488 0.488-0.732 1.113-0.732 1.873v15.644h-20.857c-2.391 0-4.604-0.394-6.641-1.183-2.037-0.787-3.748-1.737-5.133-2.852-1.384-1.113-2.77-2.648-4.154-4.604-1.386-1.955-2.486-3.68-3.301-5.174-0.814-1.492-1.819-3.463-3.014-5.906-4.182 9.777-7.875 17.19-11.08 22.242 1.466 2.119 2.987 4.006 4.562 5.662s3.069 3.109 4.481 4.358 3.015 2.336 4.807 3.259c1.793 0.924 3.367 1.697 4.727 2.322s3.07 1.127 5.133 1.507c2.064 0.38 3.802 0.666 5.214 0.854 1.412 0.19 3.341 0.326 5.785 0.408s4.426 0.108 5.946 0.082c1.522-0.027 3.722-0.056 6.601-0.082s5.188-0.041 6.926-0.041v15.644c0 0.706 0.257 1.317 0.773 1.833s1.127 0.773 1.833 0.773c0.761 0 1.386-0.244 1.873-0.732l26.072-26.071c0.488-0.489 0.732-1.113 0.732-1.874s-0.244-1.385-0.734-1.873z"/>
+    </g>
+</svg>
diff --git a/ios/.gitignore b/ios/.gitignore
new file mode 100644
index 0000000..151026b
--- /dev/null
+++ b/ios/.gitignore
@@ -0,0 +1,33 @@
+*.mode1v3
+*.mode2v3
+*.moved-aside
+*.pbxuser
+*.perspectivev3
+**/*sync/
+.sconsign.dblite
+.tags*
+**/.vagrant/
+**/DerivedData/
+Icon?
+**/Pods/
+**/.symlinks/
+profile
+xcuserdata
+**/.generated/
+Flutter/App.framework
+Flutter/Flutter.framework
+Flutter/Flutter.podspec
+Flutter/Generated.xcconfig
+Flutter/ephemeral/
+Flutter/app.flx
+Flutter/app.zip
+Flutter/flutter_assets/
+Flutter/flutter_export_environment.sh
+ServiceDefinitions.json
+Runner/GeneratedPluginRegistrant.*
+
+# Exceptions to above rules.
+!default.mode1v3
+!default.mode2v3
+!default.pbxuser
+!default.perspectivev3
diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist
new file mode 100644
index 0000000..9367d48
--- /dev/null
+++ b/ios/Flutter/AppFrameworkInfo.plist
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>en</string>
+  <key>CFBundleExecutable</key>
+  <string>App</string>
+  <key>CFBundleIdentifier</key>
+  <string>io.flutter.flutter.app</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>App</string>
+  <key>CFBundlePackageType</key>
+  <string>FMWK</string>
+  <key>CFBundleShortVersionString</key>
+  <string>1.0</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>1.0</string>
+  <key>MinimumOSVersion</key>
+  <string>8.0</string>
+</dict>
+</plist>
diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig
new file mode 100644
index 0000000..592ceee
--- /dev/null
+++ b/ios/Flutter/Debug.xcconfig
@@ -0,0 +1 @@
+#include "Generated.xcconfig"
diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig
new file mode 100644
index 0000000..592ceee
--- /dev/null
+++ b/ios/Flutter/Release.xcconfig
@@ -0,0 +1 @@
+#include "Generated.xcconfig"
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..2954b1e
--- /dev/null
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -0,0 +1,472 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
+		3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
+		978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };
+		97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
+		97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
+		97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
+		97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		9705A1C41CF9048500538489 /* Embed Frameworks */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 10;
+			files = (
+			);
+			name = "Embed Frameworks";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
+		1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
+		3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
+		7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
+		7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
+		7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
+		9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
+		9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
+		97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+		97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
+		97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+		97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+		97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		97C146EB1CF9000F007C117D /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		9740EEB11CF90186004384FC /* Flutter */ = {
+			isa = PBXGroup;
+			children = (
+				3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
+				9740EEB21CF90195004384FC /* Debug.xcconfig */,
+				7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
+				9740EEB31CF90195004384FC /* Generated.xcconfig */,
+			);
+			name = Flutter;
+			sourceTree = "<group>";
+		};
+		97C146E51CF9000F007C117D = {
+			isa = PBXGroup;
+			children = (
+				9740EEB11CF90186004384FC /* Flutter */,
+				97C146F01CF9000F007C117D /* Runner */,
+				97C146EF1CF9000F007C117D /* Products */,
+				CF3B75C9A7D2FA2A4C99F110 /* Frameworks */,
+			);
+			sourceTree = "<group>";
+		};
+		97C146EF1CF9000F007C117D /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				97C146EE1CF9000F007C117D /* Runner.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		97C146F01CF9000F007C117D /* Runner */ = {
+			isa = PBXGroup;
+			children = (
+				7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */,
+				7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */,
+				97C146FA1CF9000F007C117D /* Main.storyboard */,
+				97C146FD1CF9000F007C117D /* Assets.xcassets */,
+				97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
+				97C147021CF9000F007C117D /* Info.plist */,
+				97C146F11CF9000F007C117D /* Supporting Files */,
+				1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
+				1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
+			);
+			path = Runner;
+			sourceTree = "<group>";
+		};
+		97C146F11CF9000F007C117D /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				97C146F21CF9000F007C117D /* main.m */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		97C146ED1CF9000F007C117D /* Runner */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
+			buildPhases = (
+				9740EEB61CF901F6004384FC /* Run Script */,
+				97C146EA1CF9000F007C117D /* Sources */,
+				97C146EB1CF9000F007C117D /* Frameworks */,
+				97C146EC1CF9000F007C117D /* Resources */,
+				9705A1C41CF9048500538489 /* Embed Frameworks */,
+				3B06AD1E1E4923F5004D2608 /* Thin Binary */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = Runner;
+			productName = Runner;
+			productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		97C146E61CF9000F007C117D /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 1020;
+				ORGANIZATIONNAME = "";
+				TargetAttributes = {
+					97C146ED1CF9000F007C117D = {
+						CreatedOnToolsVersion = 7.3.1;
+					};
+				};
+			};
+			buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
+			compatibilityVersion = "Xcode 9.3";
+			developmentRegion = en;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 97C146E51CF9000F007C117D;
+			productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				97C146ED1CF9000F007C117D /* Runner */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		97C146EC1CF9000F007C117D /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
+				3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
+				97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
+				97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Thin Binary";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
+		};
+		9740EEB61CF901F6004384FC /* Run Script */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Run Script";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		97C146EA1CF9000F007C117D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */,
+				97C146F31CF9000F007C117D /* main.m in Sources */,
+				1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+		97C146FA1CF9000F007C117D /* Main.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				97C146FB1CF9000F007C117D /* Base */,
+			);
+			name = Main.storyboard;
+			sourceTree = "<group>";
+		};
+		97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				97C147001CF9000F007C117D /* Base */,
+			);
+			name = LaunchScreen.storyboard;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		249021D3217E4FDB00AE95B9 /* Profile */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				SDKROOT = iphoneos;
+				SUPPORTED_PLATFORMS = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Profile;
+		};
+		249021D4217E4FDB00AE95B9 /* Profile */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				ENABLE_BITCODE = NO;
+				INFOPLIST_FILE = Runner/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = org.benoitharrault.sortgame;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				VERSIONING_SYSTEM = "apple-generic";
+			};
+			name = Profile;
+		};
+		97C147031CF9000F007C117D /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				MTL_ENABLE_DEBUG_INFO = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+			};
+			name = Debug;
+		};
+		97C147041CF9000F007C117D /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				SDKROOT = iphoneos;
+				SUPPORTED_PLATFORMS = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		97C147061CF9000F007C117D /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				ENABLE_BITCODE = NO;
+				INFOPLIST_FILE = Runner/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = org.benoitharrault.sortgame;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				VERSIONING_SYSTEM = "apple-generic";
+			};
+			name = Debug;
+		};
+		97C147071CF9000F007C117D /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				ENABLE_BITCODE = NO;
+				INFOPLIST_FILE = Runner/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = org.benoitharrault.sortgame;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				VERSIONING_SYSTEM = "apple-generic";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				97C147031CF9000F007C117D /* Debug */,
+				97C147041CF9000F007C117D /* Release */,
+				249021D3217E4FDB00AE95B9 /* Profile */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				97C147061CF9000F007C117D /* Debug */,
+				97C147071CF9000F007C117D /* Release */,
+				249021D4217E4FDB00AE95B9 /* Profile */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 97C146E61CF9000F007C117D /* Project object */;
+}
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..919434a
--- /dev/null
+++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:">
+   </FileRef>
+</Workspace>
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IDEDidComputeMac32BitWarning</key>
+	<true/>
+</dict>
+</plist>
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
new file mode 100644
index 0000000..f9b0d7c
--- /dev/null
+++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>PreviewsEnabled</key>
+	<false/>
+</dict>
+</plist>
diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
new file mode 100644
index 0000000..a28140c
--- /dev/null
+++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1020"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+               BuildableName = "Runner.app"
+               BlueprintName = "Runner"
+               ReferencedContainer = "container:Runner.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Profile"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..1d526a1
--- /dev/null
+++ b/ios/Runner.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:Runner.xcodeproj">
+   </FileRef>
+</Workspace>
diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IDEDidComputeMac32BitWarning</key>
+	<true/>
+</dict>
+</plist>
diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
new file mode 100644
index 0000000..f9b0d7c
--- /dev/null
+++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>PreviewsEnabled</key>
+	<false/>
+</dict>
+</plist>
diff --git a/ios/Runner/AppDelegate.h b/ios/Runner/AppDelegate.h
new file mode 100644
index 0000000..36e21bb
--- /dev/null
+++ b/ios/Runner/AppDelegate.h
@@ -0,0 +1,6 @@
+#import <Flutter/Flutter.h>
+#import <UIKit/UIKit.h>
+
+@interface AppDelegate : FlutterAppDelegate
+
+@end
diff --git a/ios/Runner/AppDelegate.m b/ios/Runner/AppDelegate.m
new file mode 100644
index 0000000..70e8393
--- /dev/null
+++ b/ios/Runner/AppDelegate.m
@@ -0,0 +1,13 @@
+#import "AppDelegate.h"
+#import "GeneratedPluginRegistrant.h"
+
+@implementation AppDelegate
+
+- (BOOL)application:(UIApplication *)application
+    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
+  [GeneratedPluginRegistrant registerWithRegistry:self];
+  // Override point for customization after application launch.
+  return [super application:application didFinishLaunchingWithOptions:launchOptions];
+}
+
+@end
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..d36b1fa
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,122 @@
+{
+  "images" : [
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-20x20@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-20x20@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-29x29@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-29x29@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-29x29@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-40x40@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-40x40@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-60x60@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-60x60@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-20x20@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-20x20@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-29x29@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-29x29@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-40x40@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-40x40@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-76x76@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-76x76@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "83.5x83.5",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-83.5x83.5@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "1024x1024",
+      "idiom" : "ios-marketing",
+      "filename" : "Icon-App-1024x1024@1x.png",
+      "scale" : "1x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332
GIT binary patch
literal 10932
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
QlAxuUp00i_>zopr0K8b=b^rhX

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..28c6bf03016f6c994b70f38d1b7346e5831b531f
GIT binary patch
literal 564
zcmeAS@N?(olHy`uVBq!ia0y~yU=RUe4mJh`hTcwDUIqpR#^NA%Cx&(BWL`2bFuwD2
zaSX8#TsvjAw@jeOvGY5>_q|>h+1u6fBdexi<)tM8-3iJOH-6e{csS^|t`^`h%M4z^
zvrUsp%yCUni-1dr!HteCeu1-6sf(@4&z-gOX8TrnJhnM~hPD2_`!&xEoBNpM46ZP5
z>RM6Fs4Du%wQt&V4?nF#Au;N4dCxlR<XldO9-6?g%eZUVFOxLhq?If5795yX*H)3r
zcr-L!Dsz*&v#QSl(?&xbdB=-h`NEg}1Tfsq{4(uywXxqq5w)$a&)ne^j#c_lpTP8G
z*_&ovJMIUWi|u_Gk1ED$Xa95SQ_5@D^>EhFOs+Q*8UNIXwA$#oIyO8|+tqV&R#9*$
zUnSd|Hw&5HJe<YZ<N71*xK-Ib1>-|^3yuFWnr2?uxcNuK(*U^*-n;k6AAGamV&=3x
zQTjVJM+cmBEL?H-jDy2s*;QO>QThRLANE|lxz@Sy?+%4F#V^}4%*``0mhkR1xTsnd
zsl4K{bVpgeu!#g~y%YEC?D&;me>Lr&{KSK$>&ee#llSpUG=!hMOnEB&rtbEo$NBpo
ze0#XwfU{CPz~%7UQ+uQ}ChR*S%%W*wac<_u>)Jc^mA`9MySCxd!B^Kd#zy?>WBq3t
zA?<j7a@z02UrV#jFFU2SH1ENFaf?TqF86c<HRj3ddVAgxk5KwL|Js^`@zZL)>x*4_
W$LnK$#EXG}fx*+&&t;ucLK6TGg!*^@

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ccbfd967d9697cd4b83225558af2911e9571c9b
GIT binary patch
literal 1283
zcmeAS@N?(olHy`uVBq!ia0y~yV9)?z4mJh`hMs>rav2y{PI<aGhE&WsI>R?dBvs;g
z{d;TUyFpPJ%eF4Kv7n|^zp=ULn1t;EM$XP7lUeld*i<WYMHn1eEM+Rk!LA?E!ztJy
zD8yIC>OAGhrAO=?vmAmpT<U+jYxid3dVb^0cemaCn{#@yPnp^KJ?}ry{%?H#%xAl{
z8!DE^W+>R*XMV$8#$?-Y`cDL-1XCS@pJejB8Rvppy6eq7etCUAujg?q<WvaP_dQE4
z{y3yycZjut%lnV#r5Q_NT~$>j6J!e{Uv#AAYb{|~a_aH522J@Q@fi&BOpfuWHHbGp
zf5x@0=W&%z;t#%xYZ_i1#tsY?XV=JR1*ru$Xe%q8GYMi`*I43cb15zIa$ef*g)OP`
zxn+8uo27Eb>{9r}R#PV@sJksCu`zk^$I#qqi)ZJWE@$GC^4#7iY9ct-)8d8n31bVb
zX;lK#VjdrPy!sZ;@og0)Rhw5$KOp&F-NcXuofoDxM?Z25Q1Tbd+xYNCT0eV~Php(s
z<cV5Oqt_M$Mm(3`W4LW2^O=pEcVCd0)6OHW!U}d3U4JIHF7H4Q=S9Q*f&ljpaicX$
z!zMRzPZfB&W>r(KmiUp+T6+&?C9dbVk>SLWbgX<w;Owuib8E8IxITQlYSWzjwe_o?
zU#jS)hV?5lUU-G>@7~0v#&fvx<GF_OUrTZeT5o(*zs?;a!Ie>}_S)%a@u$R+v$Lgb
zcLiOYf4R$3h^y$~8P-z=e?C;X^D^2|@K|_BOOua4qui|r8!K13nyLg|73lx<s9^v3
zvz!;@UdMXwyu6)h+Ey2blZUP~$h(=BrA$6PZRxgW&$lFPoN%IEU%xNr>rZXr*ju;F
zgx|erIDfsIxhjhHXMvIP?8enx7P6mu>*fc1c=y;ahGSjp;lGuBcQh{SzH#ApT49dK
z`Ang8Y6pT&Jlr#3(Hn0W*>~S9f3}}*)^yfuapkkQmiJL7h52FRWrLWr4F+59@QKX*
z&iiA|j)#}$b~)uf+UVL>vE{JpQwhGc<u`8Kl#sa+s53)ilYsTF7rV~0@BgWj-}_+F
z>;jIHlKqXlCF80s&R_HEmS6Euygc@5k7ASXhVP2g(|73{u6(F=?yx`%zx0!xh0k=>
z@2~H(ejI6YT%e^_^d0ZiKSyPK{bY7bNiOgy*`?Sx*{Rj0zP_&O%zjCcZ5wK1&7b$b
zS-4u+Re)>xxmODx+IoKSah(vkF4bmQOJ?4@n*L71#9h^eYmdsG-&9-ce|Um#?yRl}
zHz)kP-&6SUG5^IIEML~BMqVrRQjA}+dhu305AQAA`6pzU9W{1E>(0+>-l`ogtQT#4
zv{I4dqgB+-Pp<{^Wvq|eKaP}%{%owt&7)o~)wHF}A<4B|UA%w)kz-Te{&=aQJFhvL
zcU`h$Qee7tc-{WP?;gh+O*;8F!nyT<D)aZAC7TcAEpl@>Ed4_zXS=)6n^)GSALu(@
zFj_mOP`4*Na%-LC^ZU2XzIy6y&|qkMNLIl0d(*@(Mjs@LFW7h~w7dO(eCMgX;W}ey
z)$1FVT(;b{_T{serM4|X+iVsv?@3bGd0_hizGsX6s!a`EBIo^}j%A+F$3@YdzmBZj
z*|cUF%e7fvr+yyrOFrYjRQJK&Nt+6#ztwGP_&n*`Q6J-9SNuJG)iEwe+w485%%@SC
z)0^p~ht+}=x9!*b3^nYjoiqK*szo(3n7-R@emEuiR&Q1|0|Nttr>mdKI;Vst04OMA
Ap8x;=

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c
GIT binary patch
literal 1588
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
KKbLh*2~7ZftovC2

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4cde12118dda48d71e01fcb589a74d069c5d7cb5
GIT binary patch
literal 1025
zcmeAS@N?(olHy`uVBq!ia0y~yV2}l24mJh`hOo)${0t1tCp=voLn`KMo$i|v6Do4N
z{`<b~Ml(xh`LD=b>FK#DR4OpQeBF{oZd^@ytAg%E#Qb2~b^X?|T}6qm0$PzPyj`7G
zy_Gu?Tvy63oEqf4uq)x$(ur!5kEj^Gzq`Ntx7tjVxiiC8v%gDvxBLB{bJyoo%T4N0
zVODtQ=;^K!J27NZ$iBu<udg*~FCT{NPxs`yB%kkH^y~kVxl@EEL=|Y%PVng3d}#8q
z<uOzJJgdYHcvLY+uqG)m@JPD6bPRpZxu$Va^MN0sr8bOC2?so^*lbvKh};Sgs%$+h
z%z0c-{RwkH(}6=il6kTD6)&fCJPV0F<;TF?Bk39J5G@vA`r&eC%fk5NqHDVarDk-x
z#vd$NV4viCPRBKQ>KQ4|sNM5<Z%F-|(6+L@mi2H#y-Rk8FvrT>|D|4BlJT3qaC^dy
z`Al<PiMy#~=q4m2sI}#?9&Y^C@l7N{dP<V>i+Wy`_(SF_GH?1bcJn2~W`yzIR&v&n
zHwq7(^p$5v+Sf3x^?C*FF4e(q*QF|>HkSQxN`4T-liuBTV8bK*O%EQdEA!sxwmOn=
z?UScxwmjbZIdxYN+ghe~{*9XrWo&{UU72!%^|WrmE}d^*TJBs<%zjqs`ZenD!Q0Wg
z)z!{jsrNI}RyWA{w*5T9?C;-wPVEGH0LQ{N4|eXGuy?QG!nJd+n?Brnto>zY-v1XL
z^bO0mMaTI!UQYe^r=s(u>x)yB0SOPXB<H>3tXO586LHe?cEZ!6=k?X@+|Imt;Z5WD
zy7))8PqyglPMaOg!<eMimcFg+%}dVdtM<*i@^<glqlSk1ah8#fj-)uHpW86uz%GZJ
zw`Vq2PrkAD=<^FRj+H0h?MwOaQ24{w`J9WV3-2mw+thra!*cfH?eczx7q&g<onjPw
zjQ4gzN^Pp$O<AJ~_apM$N(OAR^An%#UT;yE(la-|=fm|kN{yx}>(U-fn|rcqYiLo;
zi<r*s=eT9%pIz!-&S{>jtaq;Xd#<$P&F$UmocfM*F7Q)L-FK^}@kZzL?dBhoKEIE#
zDxCIWncWkao!4w0KVN51@IfQ|xfjc|2d{o4sfadyjXc04r0&GMzV4H7e%%jVlkmGw
zj<WvBzklLH_U;>ZE<P&GxmID5uF}h7ebPdivmo=ww_2NX?D2nmX7ukdOgxZNIPZ5^
z&a=hh@6uz7I}T1L(l)+SsQgm!fyQ-9UMtRQp6;h9NB3=Q+b^CRHOpyHfoAp9%MTXU
zxm(RSx3th|dD^5SsnY$cpWR!?W#DoBcVyz#M|0+{2w$IlV#1PuNwNR-ePFXu%k;VA
q^R|5R?a8lx23>mWT{!KG{qOgR*SIgbw=gg;FnGH9xvX<aXaWFyM)8~g

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658
GIT binary patch
literal 1716
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
V&a^duV_;xl@O1TaS?83{1OVHl_EP`=

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..dcdc2306c28505ebc0b6c3a359c4d252bf626b9f
GIT binary patch
literal 1920
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

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ccbfd967d9697cd4b83225558af2911e9571c9b
GIT binary patch
literal 1283
zcmeAS@N?(olHy`uVBq!ia0y~yV9)?z4mJh`hMs>rav2y{PI<aGhE&WsI>R?dBvs;g
z{d;TUyFpPJ%eF4Kv7n|^zp=ULn1t;EM$XP7lUeld*i<WYMHn1eEM+Rk!LA?E!ztJy
zD8yIC>OAGhrAO=?vmAmpT<U+jYxid3dVb^0cemaCn{#@yPnp^KJ?}ry{%?H#%xAl{
z8!DE^W+>R*XMV$8#$?-Y`cDL-1XCS@pJejB8Rvppy6eq7etCUAujg?q<WvaP_dQE4
z{y3yycZjut%lnV#r5Q_NT~$>j6J!e{Uv#AAYb{|~a_aH522J@Q@fi&BOpfuWHHbGp
zf5x@0=W&%z;t#%xYZ_i1#tsY?XV=JR1*ru$Xe%q8GYMi`*I43cb15zIa$ef*g)OP`
zxn+8uo27Eb>{9r}R#PV@sJksCu`zk^$I#qqi)ZJWE@$GC^4#7iY9ct-)8d8n31bVb
zX;lK#VjdrPy!sZ;@og0)Rhw5$KOp&F-NcXuofoDxM?Z25Q1Tbd+xYNCT0eV~Php(s
z<cV5Oqt_M$Mm(3`W4LW2^O=pEcVCd0)6OHW!U}d3U4JIHF7H4Q=S9Q*f&ljpaicX$
z!zMRzPZfB&W>r(KmiUp+T6+&?C9dbVk>SLWbgX<w;Owuib8E8IxITQlYSWzjwe_o?
zU#jS)hV?5lUU-G>@7~0v#&fvx<GF_OUrTZeT5o(*zs?;a!Ie>}_S)%a@u$R+v$Lgb
zcLiOYf4R$3h^y$~8P-z=e?C;X^D^2|@K|_BOOua4qui|r8!K13nyLg|73lx<s9^v3
zvz!;@UdMXwyu6)h+Ey2blZUP~$h(=BrA$6PZRxgW&$lFPoN%IEU%xNr>rZXr*ju;F
zgx|erIDfsIxhjhHXMvIP?8enx7P6mu>*fc1c=y;ahGSjp;lGuBcQh{SzH#ApT49dK
z`Ang8Y6pT&Jlr#3(Hn0W*>~S9f3}}*)^yfuapkkQmiJL7h52FRWrLWr4F+59@QKX*
z&iiA|j)#}$b~)uf+UVL>vE{JpQwhGc<u`8Kl#sa+s53)ilYsTF7rV~0@BgWj-}_+F
z>;jIHlKqXlCF80s&R_HEmS6Euygc@5k7ASXhVP2g(|73{u6(F=?yx`%zx0!xh0k=>
z@2~H(ejI6YT%e^_^d0ZiKSyPK{bY7bNiOgy*`?Sx*{Rj0zP_&O%zjCcZ5wK1&7b$b
zS-4u+Re)>xxmODx+IoKSah(vkF4bmQOJ?4@n*L71#9h^eYmdsG-&9-ce|Um#?yRl}
zHz)kP-&6SUG5^IIEML~BMqVrRQjA}+dhu305AQAA`6pzU9W{1E>(0+>-l`ogtQT#4
zv{I4dqgB+-Pp<{^Wvq|eKaP}%{%owt&7)o~)wHF}A<4B|UA%w)kz-Te{&=aQJFhvL
zcU`h$Qee7tc-{WP?;gh+O*;8F!nyT<D)aZAC7TcAEpl@>Ed4_zXS=)6n^)GSALu(@
zFj_mOP`4*Na%-LC^ZU2XzIy6y&|qkMNLIl0d(*@(Mjs@LFW7h~w7dO(eCMgX;W}ey
z)$1FVT(;b{_T{serM4|X+iVsv?@3bGd0_hizGsX6s!a`EBIo^}j%A+F$3@YdzmBZj
z*|cUF%e7fvr+yyrOFrYjRQJK&Nt+6#ztwGP_&n*`Q6J-9SNuJG)iEwe+w485%%@SC
z)0^p~ht+}=x9!*b3^nYjoiqK*szo(3n7-R@emEuiR&Q1|0|Nttr>mdKI;Vst04OMA
Ap8x;=

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2
GIT binary patch
literal 1895
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
OVDNPHb6Mw<&;$VbO<Vi`

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22
GIT binary patch
literal 2665
zcmeAS@N?(olHy`uVBq!ia0y~yV5k6L4mJh`2Fnz)OAHKL2A(dCAr-gY&du%-2^BlO
zI*p-s-RjQH{Mh)9qCNdH7Pz&(QPMHcSnyfsipH@SGgdqhX4<rCMTQ6q+Xca|&AV31
z-w~C)VzJ=xgAU2w7ajfvKg=|E`YTJyzlO-3U%PAj?=s)-2A99?+5XP+-^#SMcdvHt
z|2Mz*-QKxczS_nN4(`0l?$^(|Ey{DybvIqS&*g91E0?!no345uf1-V*>WbGD-xb9H
zQ`Z&hNjwf%bYk`nfv*x-##+2ur+Rr-F>jS9J?W4vCvt;J=~sottEiCZiRM|0e!ZA@
zB1lWKZq1#GeX}~PF4+ES+$AROzceq^@m|KX=9P=~BplehuJ8|2sQirCp0W#$3kR$(
zQrG)>GWemtLHXv0ZmX&3k3`p;v(v4Z({yX$0XM!~lXuSCpt+l|_~6{rb9Gi9v)=UJ
z?jM2h>81Jw)3vT2TjytdVfE=EqwwPC7sZW2K8x%&c=2(k;@RnzJ3hziFHzbzL0&fG
z@zJGEGh_CKo)cyMRLbnPFk<7f;DvYZD7A7KW)<<jDmhl9@O@wClH_1TxAMIc^Cxs4
zTpJdwnAmJMJ95G*&B8^@fwvX*$4uK{Bi_ao$D_FX2Wu(E<5T5ljVI5VrTa6+#`=2b
z<~hB$9?f!5=gKkX^VR?N)Rs}R_usADh=dsncT`xvYPhpULcZtOKj%e3MxAYIBWG;X
zWH#TL{@@rx$!B-T6@L|Yx%V67++bXuopwQM-^nP}pSt^94w$~=(En}5{W$89!P~zk
zJ|6>vUw(YGZOh+Zo6XV_`V(6Ng>KwB+RdYvy-w(1g87|~7C(-}Ud{ctnlHXQDO>8@
zKNDu#n-^Z$S|44%V!zOV#git@s@&ntd54!T=8@5U*9U$FuJ7l5SQflvndqzeUP(HP
zHrAYXi|u#l9z3|VS4{8xr+AhR-kX@;O`rC(be(j8Fyo(%XTF*zo-1AcBHtvcM|Jjl
z^=mux4pehKc&Ac&`k?joE~&hO1{p@@YTvfDOt`e^?VW2kEVjpIoZ1;=74CN+@lfyX
z;-$=M=4cx}c=5n#%|kE78Tl(jVooxsmk26LHXOcVA+Yk97h}ZLm`+CZjMMs+4WVbJ
zN)$Ai^F3h)=}LGS)5*B{se32mYF+zIM(yWbJQ2A+J$WK5!;=nV{R~VxkagNW=|GmC
zGnBRJ8B7Jp$kn~f5KR{E&ZWNB=ka8>cz3#gTG0l3?U2GdpOW{hPdB@@=XT5a?=vn4
zPT2OwbYboEnbrA+nEQ4Y-+cdFO6<(NIgRy?KCizqqwOSPM~q+Qm))8XpL!GH1<r0_
zVL!9~f2v{GJG(yy6JCc;^p?HKTA;a9D&+67Eq@<IZq?QH?^1j0Znv_(KKI7CuEoWb
zI~@1fUkX@vXV%%dw}oU4cKgWh{2;!Q;l>f(KI=yYqK__b;w^8!Q^4$h@yO9)YZ>w1
zoHx1e)Vg_`%k7lQd*Cb988UzWgxbQq)ql?Mrp`(!n((~DV(zNxjbB5Gg`eHIAZB%g
zp}KU_@-1_G=M_80uF@&llxSV4G2yjK!)+n^9Sif!KKRLTrRbki4UgFWcruTVm&Tn7
z+qv6crRbk~dnO{_>a3=T`Co5!^Ew`i6%5|7kXi59lOWTb*Oc#^d~xe>{QJhu_ujMy
zp4F^Q)$}~q%d_G3$>MH{o#)th99O)v`Ql!d51HA2TXneZoL~@tz3!&Ssna1R8fTw6
zX#3gMoppl!2fp$-3I)onF+4_@ZE9P8J&s|!?th|iF4s}94bn!8)xXvMS(ZDT5L*5;
zg7MjO)6VSOn_5e6tuFrCptGnrnRQ0{o4Pmc#d{sZuI}8(eC9wDqvdv)6H3<R(;5;r
z3e1<CYO|I&vB)~y;y|5cxxs{Nm4bBv4L2W5s{TJUxR{-Pr+C)wAdB<92fNm`eJE&U
zIP>aL-;`EOW7hiW#n;1k*gUy>{o8?^uX!T=?!A2Yd*q|~{3wY7)`q5&ty|>YZ?2ws
zF5^{Ou^EHRrUcnD6;DE|XQf4nMNC`D&^~q1N!~dpt-fx|{?qF7ps$Ai!Hf3j1xbIJ
z7xcz6UG2Vpv%$4pCuXwizO^sapV-{_?y$Rt@x@jD!yPZrH<=Y$UI{oM#=4fFon_~3
zb@k^D?6$~lsXybqW3|KjTDGekhu1$;bUt^MYlFgs;)4Hod2Y?9cHF;;@yo2`0lj7k
zOjRtcF}emRiuy0#o5tQQh!%LqoZnpbQs=^Q9mc<}MEjaKAIx%l^~5IS-btmaDT(=~
zCKem<|9q=>Aoc>wt=8=gabG!J1kZP2*I(W+UytEUTMp;5l!f`LjYHIL7ZhrhT-o!#
zx$GX#h2wYme?4)1@!+V)2QR(?#V0ksd19wd9=b1~{XXS%Ta6FriFA`v%Yx^7m~PFS
z>?q&7veJfW-WP)x;dYF_wk(~oOf!Km$MA&G)fCOV-0k-2&mY|TZj_<k&sckfcR~L?
z<}VwI9p>-2P`H72`$m<R@?Go1mZ*6b7oW0u;-r4NAbMr7{~nPoo7XeEW%4<n{I2Ac
ze&)KIiq+q_x7Y9L+dp~fuDxrjxk}Gu+ZNn&YpFipy<l#E;fv?j8_RCya+FP+-1T~%
zE3aJ6%46E+CM@0USh7!TcEJ6-1CE>jF^fLG)?oM0F@0Y2|2@jP76kIeOw2N3yrZt3
z!o4d<a>t8r=?=56FetC9KInPa)hb0_t7Ma?^$C^&eGiG83E!9c?nt>O)w1VK*_`-<
z@8+#t+$l^y%75LMBvy2)Kq1_eh0StVx8hxv0(NPB&AB;ZjW)IwCj|3NH%-n{Z}{*2
z|04S&w-CR+g4GjemdY~P#FrgVohwt}+qY(SnvT4B!|_v5&5K)PK87h<UkqXT5pZQa
zR}sU6<>F>>eQP#6C|lHb#p6Nq|4Z>Hii{W6t39^axv8#{<L=htdkvD`1E={)aVI@h
zx$-c`Z(q*8*9&|L_pMue)#TUeS8l%#FZPXK3%9+<b9d#M%QdX=_3P6MO0PJsn6FuB
zY&c=%)Ju`VcDMHlTh-lRm9=MCtZQF-Xjy)_L-;9<O=6q!CEq*A9%JBN?0(HRUC}Y|
z<kixY;=9Jl-m*R=7Fp`08)llEP)YrqeX>#GM)t4GZ*I3*O*2}Xpto+xaqG!1l1|?F
z&2WCo`op3t1XrA&e68T*1-}6H`gW@so35DJS%~*9@;{-L7^mah`tZ*0?{)7=9n*NP
z+kW9}liGiSJ$cK7^avx16Z)Db4jqU+eB-P4SyzV1RWY4XeO2y`eYSVZcJ&2rjNc*i
zgo|sI$eXlxtf9Vr@^=nP80TsnoY!!iIY7Vo?yQx^%rE85Jezk-fO#70b>5kF`|g`Q
z56bIX7Ob{$g~Z|_#n*FYpS<^RI#)?b!uEx$ei*I#DSF4|r+&&-maXm9h4N3fuMDYZ
zzxAByc5l^`)!U~=2^`#SU}wj<RpP6Ar&XfXgJ!l<{gU!2m-jK2Mj5g>I$n!i(C={9
zXL(4qi2nJF{9ENpwO?h(ty!;GIU#su;=1{BJ7)D&aeY;^xW6+j_WOZ%s@4^6SGZmI
jx+3^a<YjN=uj(tlh;5st^+1$?fq}u()z4*}Q$iB}hAk5^

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22
GIT binary patch
literal 2665
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

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680
GIT binary patch
literal 3831
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
U*#tT>FfcH9y85}Sb4q9e0QKHA1^@s6

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d
GIT binary patch
literal 1888
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
O7(8A5T-G@yGywok=Zg*i

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..6a84f41e14e27f4b11f16f9ee39279ac98f8d5ac
GIT binary patch
literal 3294
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

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0e1f58536026aebc4f1f70e481f6993c9ff088d
GIT binary patch
literal 3612
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

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
new file mode 100644
index 0000000..0bedcf2
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
new file mode 100644
index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838
GIT binary patch
literal 68
zcmeAS@N?(olHy`uVBq!ia0y~yU|<Ac4i*LmhOII@ObiSR+@3CuAr*6yf1PJwU}9%v
Vnk8dc$iTqB;OXk;vd$@?2>@r242}Q*

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838
GIT binary patch
literal 68
zcmeAS@N?(olHy`uVBq!ia0y~yU|<Ac4i*LmhOII@ObiSR+@3CuAr*6yf1PJwU}9%v
Vnk8dc$iTqB;OXk;vd$@?2>@r242}Q*

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838
GIT binary patch
literal 68
zcmeAS@N?(olHy`uVBq!ia0y~yU|<Ac4i*LmhOII@ObiSR+@3CuAr*6yf1PJwU}9%v
Vnk8dc$iTqB;OXk;vd$@?2>@r242}Q*

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
new file mode 100644
index 0000000..89c2725
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
@@ -0,0 +1,5 @@
+# Launch Screen Assets
+
+You can customize the launch screen with your own desired assets by replacing the image files in this directory.
+
+You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
\ No newline at end of file
diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard
new file mode 100644
index 0000000..f2e259c
--- /dev/null
+++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
+    </dependencies>
+    <scenes>
+        <!--View Controller-->
+        <scene sceneID="EHf-IW-A2E">
+            <objects>
+                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
+                        <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
+                            </imageView>
+                        </subviews>
+                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
+                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
+                        </constraints>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="53" y="375"/>
+        </scene>
+    </scenes>
+    <resources>
+        <image name="LaunchImage" width="168" height="185"/>
+    </resources>
+</document>
diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard
new file mode 100644
index 0000000..f3c2851
--- /dev/null
+++ b/ios/Runner/Base.lproj/Main.storyboard
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
+    </dependencies>
+    <scenes>
+        <!--Flutter View Controller-->
+        <scene sceneID="tne-QT-ifu">
+            <objects>
+                <viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
+                        <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
+                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
+            </objects>
+        </scene>
+    </scenes>
+</document>
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
new file mode 100644
index 0000000..f888cf1
--- /dev/null
+++ b/ios/Runner/Info.plist
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>$(DEVELOPMENT_LANGUAGE)</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>sortgame</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>$(FLUTTER_BUILD_NAME)</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>$(FLUTTER_BUILD_NUMBER)</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>UILaunchStoryboardName</key>
+	<string>LaunchScreen</string>
+	<key>UIMainStoryboardFile</key>
+	<string>Main</string>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UIViewControllerBasedStatusBarAppearance</key>
+	<false/>
+</dict>
+</plist>
diff --git a/ios/Runner/main.m b/ios/Runner/main.m
new file mode 100644
index 0000000..dff6597
--- /dev/null
+++ b/ios/Runner/main.m
@@ -0,0 +1,9 @@
+#import <Flutter/Flutter.h>
+#import <UIKit/UIKit.h>
+#import "AppDelegate.h"
+
+int main(int argc, char* argv[]) {
+  @autoreleasepool {
+    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
+  }
+}
diff --git a/lib/main.dart b/lib/main.dart
new file mode 100644
index 0000000..a317c62
--- /dev/null
+++ b/lib/main.dart
@@ -0,0 +1,29 @@
+import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
+
+import 'provider/data.dart';
+import 'screens/home.dart';
+
+void main() => runApp(MyApp());
+
+class MyApp extends StatelessWidget {
+  @override
+  Widget build(BuildContext context) {
+    return ChangeNotifierProvider(
+      create: (BuildContext context) => Data(),
+      child: Consumer<Data>(builder: (context, data, child) {
+        return MaterialApp(
+          debugShowCheckedModeBanner: false,
+          theme: ThemeData(
+            primaryColor: Colors.blue,
+            visualDensity: VisualDensity.adaptivePlatformDensity,
+          ),
+          home: Home(),
+          routes: {
+            Home.id: (context) => Home(),
+          },
+        );
+      }),
+    );
+  }
+}
diff --git a/lib/provider/data.dart b/lib/provider/data.dart
new file mode 100644
index 0000000..4cc589c
--- /dev/null
+++ b/lib/provider/data.dart
@@ -0,0 +1,27 @@
+import 'package:flutter/foundation.dart';
+
+class Data extends ChangeNotifier {
+
+  // randomization
+  bool _searchingImage = false;
+  String _image = '';
+
+  bool get searchingImage => _searchingImage;
+
+  set searchingImage(bool value) {
+    _searchingImage = value;
+    notifyListeners();
+  }
+
+  String get image => _image;
+
+  set updateImage(String value) {
+    _image = value;
+    notifyListeners();
+  }
+
+  void resetGame() {
+    _image = '';
+    notifyListeners();
+  }
+}
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
new file mode 100644
index 0000000..75977be
--- /dev/null
+++ b/lib/screens/home.dart
@@ -0,0 +1,57 @@
+import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
+
+import '../provider/data.dart';
+
+class Home extends StatelessWidget {
+  static const String id = 'home';
+
+  @override
+  Widget build(BuildContext context) {
+    Data _myProvider = Provider.of<Data>(context);
+
+    return Scaffold(
+      appBar: AppBar(
+        title: Text('Sorting game'),
+      ),
+      body: Center(
+        child: Column(
+          mainAxisAlignment: MainAxisAlignment.center,
+          children: <Widget>[
+            Container(
+              child: Column(
+                mainAxisSize: MainAxisSize.min,
+                mainAxisAlignment: MainAxisAlignment.center,
+                children: [
+                  Container(
+                    margin: EdgeInsets.all(4),
+                    padding: EdgeInsets.all(4),
+                    decoration: BoxDecoration(
+                      color: Colors.blue,
+                      borderRadius: BorderRadius.circular(4),
+                      border: Border.all(
+                        color: Colors.green,
+                        width: 4,
+                      ),
+                    ),
+                    child: FlatButton(
+                      child: Text(
+                        '🎲',
+                        textAlign: TextAlign.center,
+                        style: TextStyle(
+                          fontSize: 50,
+                          fontWeight: FontWeight.w600,
+                          color: Colors.black,
+                        ),
+                      ),
+                    ),
+                  ),
+                ],
+              ),
+            ),
+          ],
+        ),
+      ),
+    );
+  }
+}
diff --git a/pubspec.lock b/pubspec.lock
new file mode 100644
index 0000000..8fe48be
--- /dev/null
+++ b/pubspec.lock
@@ -0,0 +1,161 @@
+# Generated by pub
+# See https://dart.dev/tools/pub/glossary#lockfile
+packages:
+  async:
+    dependency: transitive
+    description:
+      name: async
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.6.1"
+  boolean_selector:
+    dependency: transitive
+    description:
+      name: boolean_selector
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.1.0"
+  characters:
+    dependency: transitive
+    description:
+      name: characters
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.1.0"
+  charcode:
+    dependency: transitive
+    description:
+      name: charcode
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.2.0"
+  clock:
+    dependency: transitive
+    description:
+      name: clock
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.1.0"
+  collection:
+    dependency: transitive
+    description:
+      name: collection
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.15.0"
+  fake_async:
+    dependency: transitive
+    description:
+      name: fake_async
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.2.0"
+  flutter:
+    dependency: "direct main"
+    description: flutter
+    source: sdk
+    version: "0.0.0"
+  flutter_test:
+    dependency: "direct dev"
+    description: flutter
+    source: sdk
+    version: "0.0.0"
+  matcher:
+    dependency: transitive
+    description:
+      name: matcher
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.12.10"
+  meta:
+    dependency: transitive
+    description:
+      name: meta
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.3.0"
+  nested:
+    dependency: transitive
+    description:
+      name: nested
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.0.0"
+  path:
+    dependency: transitive
+    description:
+      name: path
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.8.0"
+  provider:
+    dependency: "direct main"
+    description:
+      name: provider
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "5.0.0"
+  sky_engine:
+    dependency: transitive
+    description: flutter
+    source: sdk
+    version: "0.0.99"
+  source_span:
+    dependency: transitive
+    description:
+      name: source_span
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.8.1"
+  stack_trace:
+    dependency: transitive
+    description:
+      name: stack_trace
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.10.0"
+  stream_channel:
+    dependency: transitive
+    description:
+      name: stream_channel
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.1.0"
+  string_scanner:
+    dependency: transitive
+    description:
+      name: string_scanner
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.1.0"
+  term_glyph:
+    dependency: transitive
+    description:
+      name: term_glyph
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.2.0"
+  test_api:
+    dependency: transitive
+    description:
+      name: test_api
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.3.0"
+  typed_data:
+    dependency: transitive
+    description:
+      name: typed_data
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.3.0"
+  vector_math:
+    dependency: transitive
+    description:
+      name: vector_math
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.1.0"
+sdks:
+  dart: ">=2.12.0 <3.0.0"
+  flutter: ">=1.16.0"
diff --git a/pubspec.yaml b/pubspec.yaml
new file mode 100644
index 0000000..4c9f157
--- /dev/null
+++ b/pubspec.yaml
@@ -0,0 +1,21 @@
+name: sortgame
+description: A sorting game application.
+publish_to: 'none'
+version: 1.0.0+1
+
+environment:
+  sdk: ">=2.7.0 <3.0.0"
+
+dependencies:
+  flutter:
+    sdk: flutter
+  provider: ^5.0.0
+
+dev_dependencies:
+  flutter_test:
+    sdk: flutter
+
+flutter:
+  uses-material-design: true
+  assets:
+    - assets/files/
diff --git a/test/widget_test.dart b/test/widget_test.dart
new file mode 100644
index 0000000..50359a9
--- /dev/null
+++ b/test/widget_test.dart
@@ -0,0 +1,14 @@
+// This is a basic Flutter widget test.
+//
+// To perform an interaction with a widget in your test, use the WidgetTester
+// utility that Flutter provides. For example, you can send tap and scroll
+// gestures. You can also use WidgetTester to find child widgets in the widget
+// tree, read text, and verify that the values of widget properties are correct.
+
+import 'package:flutter/material.dart';
+import 'package:flutter_test/flutter_test.dart';
+
+import 'package:sortgame/main.dart';
+
+void main() {
+}
-- 
GitLab