Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
Telemedicine_App_Development
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Shashini Thilakarathne
Telemedicine_App_Development
Commits
7486cb3f
Commit
7486cb3f
authored
Mar 16, 2024
by
Shashini Thilakarathne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updates
parent
fb826e23
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
297 additions
and
78 deletions
+297
-78
StressPrediction/App.js
StressPrediction/App.js
+3
-3
StressPrediction/images/SideLeaf.png
StressPrediction/images/SideLeaf.png
+0
-0
StressPrediction/images/historyicon.png
StressPrediction/images/historyicon.png
+0
-0
StressPrediction/images/redCircle.png
StressPrediction/images/redCircle.png
+0
-0
StressPrediction/package-lock.json
StressPrediction/package-lock.json
+56
-0
StressPrediction/package.json
StressPrediction/package.json
+1
-0
StressPrediction/src/index.js
StressPrediction/src/index.js
+66
-69
StressPrediction/src/landingPage.js
StressPrediction/src/landingPage.js
+6
-6
StressPrediction/src/newJournalEntry.js
StressPrediction/src/newJournalEntry.js
+165
-0
No files found.
StressPrediction/App.js
View file @
7486cb3f
import
React
,
{
useState
}
from
'
react
'
;
import
React
,
{
useState
}
from
'
react
'
;
import
{
View
}
from
'
react-native
'
;
import
{
View
}
from
'
react-native
'
;
import
LandingPage
from
'
./src/landingPage
'
;
import
LandingPage
from
'
./src/landingPage
'
;
import
AddData
from
'
./src/index
'
;
import
NewJournalEntry
from
'
./src/newJournalEntry
'
;
export
default
function
App
()
{
export
default
function
App
()
{
const
[
showAddData
,
setShowAddData
]
=
useState
(
false
);
const
[
showAddData
,
setShowAddData
]
=
useState
(
false
);
...
@@ -19,7 +19,7 @@ export default function App() {
...
@@ -19,7 +19,7 @@ export default function App() {
{
!
showAddData
?
(
{
!
showAddData
?
(
<
LandingPage
onGoToAddData
=
{
handleGoToAddData
}
/
>
<
LandingPage
onGoToAddData
=
{
handleGoToAddData
}
/
>
)
:
(
)
:
(
<
AddData
onGoBack
=
{
handleGoBack
}
/
>
<
NewJournalEntry
onGoBack
=
{
handleGoBack
}
/
>
)}
)}
<
/View
>
<
/View
>
);
);
...
...
StressPrediction/images/SideLeaf.png
0 → 100644
View file @
7486cb3f
21.2 KB
StressPrediction/images/historyicon.png
0 → 100644
View file @
7486cb3f
65.2 KB
StressPrediction/images/redCircle.png
0 → 100644
View file @
7486cb3f
46.3 KB
StressPrediction/package-lock.json
View file @
7486cb3f
...
@@ -16,6 +16,7 @@
...
@@ -16,6 +16,7 @@
"firebase"
:
"^9.6.11"
,
"firebase"
:
"^9.6.11"
,
"react"
:
"18.2.0"
,
"react"
:
"18.2.0"
,
"react-native"
:
"0.73.5"
,
"react-native"
:
"0.73.5"
,
"react-native-calendars"
:
"^1.1304.1"
,
"react-native-gesture-handler"
:
"^2.15.0"
,
"react-native-gesture-handler"
:
"^2.15.0"
,
"react-native-reanimated"
:
"^3.8.0"
,
"react-native-reanimated"
:
"^3.8.0"
,
"react-native-safe-area-context"
:
"^4.9.0"
,
"react-native-safe-area-context"
:
"^4.9.0"
,
...
@@ -11241,6 +11242,15 @@
...
@@ -11241,6 +11242,15 @@
"mkdirp"
:
"bin/cmd.js"
"mkdirp"
:
"bin/cmd.js"
}
}
},
},
"node_modules/moment"
:
{
"version"
:
"2.30.1"
,
"resolved"
:
"https://registry.npmjs.org/moment/-/moment-2.30.1.tgz"
,
"integrity"
:
"sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
,
"optional"
:
true
,
"engines"
:
{
"node"
:
"*"
}
},
"node_modules/ms"
:
{
"node_modules/ms"
:
{
"version"
:
"2.1.2"
,
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
...
@@ -12327,6 +12337,23 @@
...
@@ -12327,6 +12337,23 @@
"react"
:
"18.2.0"
"react"
:
"18.2.0"
}
}
},
},
"node_modules/react-native-calendars"
:
{
"version"
:
"1.1304.1"
,
"resolved"
:
"https://registry.npmjs.org/react-native-calendars/-/react-native-calendars-1.1304.1.tgz"
,
"integrity"
:
"sha512-D1aU5lLhi7KCCCeHhKOkcC41K8s3paiiIfMaOQx6NezCbgKHelqT01WPpAZLh3Cm0QTC5EZo0oDPD0mCdKrDgQ=="
,
"dependencies"
:
{
"hoist-non-react-statics"
:
"^3.3.1"
,
"lodash"
:
"^4.17.15"
,
"memoize-one"
:
"^5.2.1"
,
"prop-types"
:
"^15.5.10"
,
"react-native-swipe-gestures"
:
"^1.0.5"
,
"recyclerlistview"
:
"^4.0.0"
,
"xdate"
:
"^0.8.0"
},
"optionalDependencies"
:
{
"moment"
:
"^2.29.4"
}
},
"node_modules/react-native-gesture-handler"
:
{
"node_modules/react-native-gesture-handler"
:
{
"version"
:
"2.15.0"
,
"version"
:
"2.15.0"
,
"resolved"
:
"https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.15.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.15.0.tgz"
,
...
@@ -12385,6 +12412,11 @@
...
@@ -12385,6 +12412,11 @@
"react-native"
:
"*"
"react-native"
:
"*"
}
}
},
},
"node_modules/react-native-swipe-gestures"
:
{
"version"
:
"1.0.5"
,
"resolved"
:
"https://registry.npmjs.org/react-native-swipe-gestures/-/react-native-swipe-gestures-1.0.5.tgz"
,
"integrity"
:
"sha512-Ns7Bn9H/Tyw278+5SQx9oAblDZ7JixyzeOczcBK8dipQk2pD7Djkcfnf1nB/8RErAmMLL9iXgW0QHqiII8AhKw=="
},
"node_modules/react-native/node_modules/ansi-styles"
:
{
"node_modules/react-native/node_modules/ansi-styles"
:
{
"version"
:
"4.3.0"
,
"version"
:
"4.3.0"
,
"resolved"
:
"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
,
...
@@ -12531,6 +12563,20 @@
...
@@ -12531,6 +12563,20 @@
"node"
:
">=0.10.0"
"node"
:
">=0.10.0"
}
}
},
},
"node_modules/recyclerlistview"
:
{
"version"
:
"4.2.0"
,
"resolved"
:
"https://registry.npmjs.org/recyclerlistview/-/recyclerlistview-4.2.0.tgz"
,
"integrity"
:
"sha512-uuBCi0c+ggqHKwrzPX4Z/mJOzsBbjZEAwGGmlwpD/sD7raXixdAbdJ6BTcAmuWG50Cg4ru9p12M94Njwhr/27A=="
,
"dependencies"
:
{
"lodash.debounce"
:
"4.0.8"
,
"prop-types"
:
"15.8.1"
,
"ts-object-utils"
:
"0.0.5"
},
"peerDependencies"
:
{
"react"
:
">= 15.2.1"
,
"react-native"
:
">= 0.30.0"
}
},
"node_modules/regenerate"
:
{
"node_modules/regenerate"
:
{
"version"
:
"1.4.2"
,
"version"
:
"1.4.2"
,
"resolved"
:
"https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz"
,
...
@@ -13590,6 +13636,11 @@
...
@@ -13590,6 +13636,11 @@
"resolved"
:
"https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz"
,
"resolved"
:
"https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz"
,
"integrity"
:
"sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
"integrity"
:
"sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
},
},
"node_modules/ts-object-utils"
:
{
"version"
:
"0.0.5"
,
"resolved"
:
"https://registry.npmjs.org/ts-object-utils/-/ts-object-utils-0.0.5.tgz"
,
"integrity"
:
"sha512-iV0GvHqOmilbIKJsfyfJY9/dNHCs969z3so90dQWsO1eMMozvTpnB1MEaUbb3FYtZTGjv5sIy/xmslEz0Rg2TA=="
},
"node_modules/tslib"
:
{
"node_modules/tslib"
:
{
"version"
:
"2.6.2"
,
"version"
:
"2.6.2"
,
"resolved"
:
"https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
,
...
@@ -14024,6 +14075,11 @@
...
@@ -14024,6 +14075,11 @@
"uuid"
:
"dist/bin/uuid"
"uuid"
:
"dist/bin/uuid"
}
}
},
},
"node_modules/xdate"
:
{
"version"
:
"0.8.2"
,
"resolved"
:
"https://registry.npmjs.org/xdate/-/xdate-0.8.2.tgz"
,
"integrity"
:
"sha512-sNBlLfOC8S3V0vLDEUianQOXcTsc9j4lfeKU/klHe0RjHAYn0CXsSttumTot8dzalboV8gZbH38B+WcCIBjhFQ=="
},
"node_modules/xml2js"
:
{
"node_modules/xml2js"
:
{
"version"
:
"0.6.0"
,
"version"
:
"0.6.0"
,
"resolved"
:
"https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz"
,
...
...
StressPrediction/package.json
View file @
7486cb3f
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
"firebase"
:
"^9.6.11"
,
"firebase"
:
"^9.6.11"
,
"react"
:
"18.2.0"
,
"react"
:
"18.2.0"
,
"react-native"
:
"0.73.5"
,
"react-native"
:
"0.73.5"
,
"react-native-calendars"
:
"^1.1304.1"
,
"react-native-gesture-handler"
:
"^2.15.0"
,
"react-native-gesture-handler"
:
"^2.15.0"
,
"react-native-reanimated"
:
"^3.8.0"
,
"react-native-reanimated"
:
"^3.8.0"
,
"react-native-safe-area-context"
:
"^4.9.0"
,
"react-native-safe-area-context"
:
"^4.9.0"
,
...
...
StressPrediction/src/index.js
View file @
7486cb3f
import
React
,
{
useState
}
from
'
react
'
;
import
{
View
,
Text
,
StyleSheet
,
TextInput
,
Button
,
Image
}
from
'
react-native
'
import
{
View
,
Text
,
StyleSheet
,
TextInput
,
Button
,
Image
}
from
'
react-native
'
;
import
React
,
{
useState
}
from
'
react
'
import
{
db
}
from
'
../config
'
;
import
{
db
}
from
'
../config
'
import
{
ref
,
set
}
from
'
firebase/database
'
;
import
{
ref
,
set
}
from
'
firebase/database
'
const
AddData
=
(
{
onGoBack
}
)
=>
{
const
AddData
=
()
=>
{
const
[
title
,
setTitle
]
=
useState
(
''
);
const
[
title
,
setTitle
]
=
useState
(
''
);
const
[
body
,
setBody
]
=
useState
(
''
);
const
[
body
,
setBody
]
=
useState
(
''
);
//function to add data to forebase realtime db
const
dataAddOn
=
()
=>
{
const
dataAddOn
=
()
=>
{
set
(
ref
(
db
,
'
posts/
'
+
title
),
{
set
(
ref
(
db
,
'
posts/
'
+
title
),
{
title
:
title
,
title
:
title
,
body
:
body
,
body
:
body
,
});
});
setTitle
(
''
);
setTitle
(
''
)
setBody
(
''
);
setBody
(
''
)
};
}
return
(
return
(
<
View
style
=
{
styles
.
container
}
>
<
View
style
=
{
styles
.
container
}
>
...
@@ -24,7 +25,7 @@ const AddData = ({ onGoBack }) => {
...
@@ -24,7 +25,7 @@ const AddData = ({ onGoBack }) => {
style
=
{
styles
.
image
}
style
=
{
styles
.
image
}
/
>
/
>
<
TextInput
<
TextInput
placeholder
=
'
Job Satisfac
tion
'
placeholder
=
'
Job Satisfica
tion
'
value
=
{
title
}
value
=
{
title
}
onChangeText
=
{(
text
)
=>
setTitle
(
text
)}
onChangeText
=
{(
text
)
=>
setTitle
(
text
)}
style
=
{
styles
.
input
}
style
=
{
styles
.
input
}
...
@@ -39,15 +40,11 @@ const AddData = ({ onGoBack }) => {
...
@@ -39,15 +40,11 @@ const AddData = ({ onGoBack }) => {
title
=
'
Add Data
'
title
=
'
Add Data
'
onPress
=
{
dataAddOn
}
onPress
=
{
dataAddOn
}
/
>
/
>
<
Button
title
=
'
Back to Landing Page
'
onPress
=
{
onGoBack
}
/
>
<
/View
>
<
/View
>
);
)
}
;
}
export
default
AddData
;
export
default
AddData
const
styles
=
StyleSheet
.
create
({
const
styles
=
StyleSheet
.
create
({
container
:
{
container
:
{
...
@@ -55,22 +52,22 @@ const styles = StyleSheet.create({
...
@@ -55,22 +52,22 @@ const styles = StyleSheet.create({
backgroundColor
:
'
#fff
'
,
backgroundColor
:
'
#fff
'
,
},
},
header
:{
header
:{
fontSize
:
40
,
fontSize
:
40
,
textAlign
:
'
center
'
,
textAlign
:
'
center
'
,
marginTop
:
50
,
marginTop
:
50
,
color
:
'
black
'
,
color
:
'
black
'
,
fontWeight
:
'
bold
'
fontWeight
:
'
bold
'
},
},
input
:{
input
:{
borderWidth
:
1
,
borderWidth
:
1
,
borderColor
:
'
black
'
,
borderColor
:
'
black
'
,
margin
:
10
,
margin
:
10
,
padding
:
10
,
padding
:
10
,
fontSize
:
18
,
fontSize
:
18
,
borderRadius
:
6
,
borderRadius
:
6
,
},
},
image
:
{
image
:
{
width
:
'
100%
'
,
width
:
'
100%
'
,
height
:
200
,
height
:
200
,
}
}
});
});
\ No newline at end of file
StressPrediction/src/landingPage.js
View file @
7486cb3f
...
@@ -67,22 +67,22 @@ const styles = StyleSheet.create({
...
@@ -67,22 +67,22 @@ const styles = StyleSheet.create({
},
},
rectangle
:
{
rectangle
:
{
width
:
'
100%
'
,
width
:
'
100%
'
,
height
:
50
,
height
:
1
50
,
backgroundColor
:
'
#
F0B27A
'
,
backgroundColor
:
'
#
616A6B
'
,
position
:
'
absolute
'
,
position
:
'
absolute
'
,
bottom
:
0
,
bottom
:
0
,
borderTopLeftRadius
:
4
0
,
borderTopLeftRadius
:
3
0
,
borderTopRightRadius
:
4
0
,
borderTopRightRadius
:
3
0
,
justifyContent
:
'
center
'
,
justifyContent
:
'
center
'
,
alignItems
:
'
center
'
,
alignItems
:
'
center
'
,
},
},
button
:
{
button
:
{
backgroundColor
:
'
#
F0B27A
'
,
backgroundColor
:
'
#
616A6B
'
,
padding
:
10
,
padding
:
10
,
borderRadius
:
5
,
borderRadius
:
5
,
},
},
buttonText
:
{
buttonText
:
{
color
:
'
#2
73746
'
,
color
:
'
#2
83747
'
,
fontSize
:
18
,
fontSize
:
18
,
fontWeight
:
'
bold
'
,
fontWeight
:
'
bold
'
,
},
},
...
...
StressPrediction/src/newJournalEntry.js
0 → 100644
View file @
7486cb3f
import
React
from
'
react
'
;
import
{
View
,
Text
,
StyleSheet
,
TouchableOpacity
,
Image
}
from
'
react-native
'
;
const
NewJournalEntry
=
({
onGoBack
})
=>
{
return
(
<
View
style
=
{
styles
.
container
}
>
<
View
style
=
{
styles
.
rectangle
}
>
<
Text
style
=
{
styles
.
text
}
>
HELLO
SHASHINI
!
{
'
\n
'
}
WHAT
WOULD
YOU
LIKE
TO
DO
?
<
/Text
>
<
TouchableOpacity
style
=
{
styles
.
button
}
onPress
=
{
onGoBack
}
>
<
Text
style
=
{
styles
.
buttonText
}
>
Go
Back
<
/Text
>
<
/TouchableOpacity
>
<
View
style
=
{
styles
.
innerRectangle
}
>
<
Text
style
=
{
styles
.
whiteText
}
>
Journal
Entry
<
/Text
>
<
Image
source
=
{
require
(
'
../images/redCircle.png
'
)}
style
=
{
styles
.
backgroundImage
}
/
>
<
View
style
=
{
styles
.
innerRectangle1
}
>
<
Text
style
=
{
styles
.
whiteText
}
>
View
History
<
/Text
>
<
Image
source
=
{
require
(
'
../images/historyicon.png
'
)}
style
=
{
styles
.
backgroundImage
}
/
>
<
/View
>
<
View
style
=
{
styles
.
innerRectangle2
}
>
<
Text
style
=
{
styles
.
whiteText1
}
>
MOOD
HISTORY
{
'
\n
'
}
<
/Text
>
<
View
style
=
{
styles
.
daysContainer
}
>
<
View
style
=
{
styles
.
dayContainer
}
>
<
Text
style
=
{
styles
.
emoji
}
>
😊
<
/Text
>
<
Text
style
=
{
styles
.
dayText
}
>
Mon
<
/Text
>
<
/View
>
<
View
style
=
{
styles
.
dayContainer
}
>
<
Text
style
=
{
styles
.
emoji
}
>
😊
<
/Text
>
<
Text
style
=
{
styles
.
dayText
}
>
Tue
<
/Text
>
<
/View
>
<
View
style
=
{
styles
.
dayContainer
}
>
<
Text
style
=
{
styles
.
emoji
}
>
😊
<
/Text
>
<
Text
style
=
{
styles
.
dayText
}
>
Wed
<
/Text
>
<
/View
>
<
View
style
=
{
styles
.
dayContainer
}
>
<
Text
style
=
{
styles
.
emoji
}
>
😊
<
/Text
>
<
Text
style
=
{
styles
.
dayText
}
>
Thu
<
/Text
>
<
/View
>
<
View
style
=
{
styles
.
dayContainer
}
>
<
Text
style
=
{
styles
.
emoji
}
>
😊
<
/Text
>
<
Text
style
=
{
styles
.
dayText
}
>
Fri
<
/Text
>
<
/View
>
<
View
style
=
{
styles
.
dayContainer
}
>
<
Text
style
=
{
styles
.
emoji
}
>
😊
<
/Text
>
<
Text
style
=
{
styles
.
dayText
}
>
Sat
<
/Text
>
<
/View
>
<
View
style
=
{
styles
.
dayContainer
}
>
<
Text
style
=
{
styles
.
emoji
}
>
😊
<
/Text
>
<
Text
style
=
{
styles
.
dayText
}
>
Sun
<
/Text
>
<
/View
>
<
/View
>
<
/View
>
<
/View
>
<
/View
>
<
/View
>
);
};
const
styles
=
StyleSheet
.
create
({
container
:
{
flex
:
1
,
justifyContent
:
'
center
'
,
alignItems
:
'
center
'
,
},
rectangle
:
{
width
:
320
,
height
:
650
,
justifyContent
:
'
space-between
'
,
alignItems
:
'
center
'
,
borderColor
:
'
black
'
,
borderWidth
:
1
,
borderRadius
:
10
,
padding
:
30
,
backgroundColor
:
'
#FDEDEC
'
,
},
text
:
{
marginLeft
:
-
70
,
},
button
:
{
backgroundColor
:
'
blue
'
,
paddingVertical
:
10
,
paddingHorizontal
:
20
,
borderRadius
:
5
,
alignSelf
:
'
flex-end
'
,
},
buttonText
:
{
color
:
'
white
'
,
fontWeight
:
'
bold
'
,
},
innerRectangle
:
{
width
:
130
,
height
:
100
,
borderColor
:
'
#F1948A
'
,
borderWidth
:
1
,
borderRadius
:
10
,
marginTop
:
-
600
,
top
:
-
410
,
marginLeft
:
-
150
,
backgroundColor
:
'
#F1948A
'
,
},
innerRectangle1
:
{
width
:
130
,
height
:
100
,
borderColor
:
'
#F1948A
'
,
borderWidth
:
1
,
borderRadius
:
10
,
top
:
-
85
,
marginLeft
:
150
,
backgroundColor
:
'
#F1948A
'
,
},
innerRectangle2
:
{
width
:
300
,
height
:
120
,
borderColor
:
'
white
'
,
borderWidth
:
1
,
borderRadius
:
12
,
top
:
-
70
,
marginLeft
:
-
10
,
backgroundColor
:
'
white
'
,
paddingTop
:
10
,
alignItems
:
'
center
'
,
},
whiteText
:
{
color
:
'
white
'
,
textAlign
:
'
center
'
,
fontWeight
:
'
bold
'
,
fontSize
:
18
,
},
whiteText1
:
{
color
:
'
#E74C3C
'
,
fontWeight
:
'
bold
'
,
fontSize
:
15
,
},
backgroundImage
:
{
width
:
60
,
height
:
60
,
marginLeft
:
30
,
},
daysContainer
:
{
flexDirection
:
'
row
'
,
justifyContent
:
'
space-between
'
,
width
:
'
100%
'
,
paddingHorizontal
:
20
,
},
dayContainer
:
{
alignItems
:
'
center
'
,
},
dayText
:
{
fontSize
:
16
,
fontWeight
:
'
bold
'
,
color
:
'
#273746
'
,
},
emoji
:
{
fontSize
:
20
,
},
});
export
default
NewJournalEntry
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment