Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
website
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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Gruppo Ask
website
Commits
1473dfd2
Commit
1473dfd2
authored
Jul 03, 2012
by
Riccardo Padovani
Browse files
Options
Browse Files
Download
Plain Diff
Inserite le modifiche di Milo.
Impostata la seconda testata Creato il footer
parents
b00df416
07297561
Changes
7
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
437 additions
and
373 deletions
+437
-373
forum/skins/default/media/js/wmd/wmd.js
forum/skins/default/media/js/wmd/wmd.js
+15
-15
forum/skins/light/media/images/ubuntu/header-shadow.png
forum/skins/light/media/images/ubuntu/header-shadow.png
+0
-0
forum/skins/light/media/style/style.css
forum/skins/light/media/style/style.css
+36
-14
forum/skins/light/templates/footer.html
forum/skins/light/templates/footer.html
+6
-4
forum/skins/light/templates/header.html
forum/skins/light/templates/header.html
+19
-17
forum_modules/openidauth/authentication.py
forum_modules/openidauth/authentication.py
+164
-170
locale/it/LC_MESSAGES/it.po
locale/it/LC_MESSAGES/it.po
+197
-153
No files found.
forum/skins/default/media/js/wmd/wmd.js
View file @
1473dfd2
...
@@ -102,7 +102,7 @@ Attacklab.wmdBase = function(){
...
@@ -102,7 +102,7 @@ Attacklab.wmdBase = function(){
// The link and title for the help button
// The link and title for the help button
var
helpLink
=
"
http://daringfireball.net/projects/markdown/syntax
"
;
var
helpLink
=
"
http://daringfireball.net/projects/markdown/syntax
"
;
var
helpHoverTitle
=
"
MarkDown Syntax
"
;
var
helpHoverTitle
=
"
Sintassi MarkDown
"
;
var
helpTarget
=
"
_blank
"
;
var
helpTarget
=
"
_blank
"
;
// -------------------------------------------------------------------
// -------------------------------------------------------------------
...
@@ -985,7 +985,7 @@ Attacklab.wmdBase = function(){
...
@@ -985,7 +985,7 @@ Attacklab.wmdBase = function(){
var
boldButton
=
document
.
createElement
(
"
li
"
);
var
boldButton
=
document
.
createElement
(
"
li
"
);
boldButton
.
className
=
"
wmd-button
"
;
boldButton
.
className
=
"
wmd-button
"
;
boldButton
.
id
=
"
wmd-bold-button
"
;
boldButton
.
id
=
"
wmd-bold-button
"
;
boldButton
.
title
=
"
Strong
<strong> Ctrl+B
"
;
boldButton
.
title
=
"
Grassetto
<strong> Ctrl+B
"
;
boldButton
.
XShift
=
"
0px
"
;
boldButton
.
XShift
=
"
0px
"
;
boldButton
.
textOp
=
command
.
doBold
;
boldButton
.
textOp
=
command
.
doBold
;
setupButton
(
boldButton
,
true
);
setupButton
(
boldButton
,
true
);
...
@@ -994,7 +994,7 @@ Attacklab.wmdBase = function(){
...
@@ -994,7 +994,7 @@ Attacklab.wmdBase = function(){
var
italicButton
=
document
.
createElement
(
"
li
"
);
var
italicButton
=
document
.
createElement
(
"
li
"
);
italicButton
.
className
=
"
wmd-button
"
;
italicButton
.
className
=
"
wmd-button
"
;
italicButton
.
id
=
"
wmd-italic-button
"
;
italicButton
.
id
=
"
wmd-italic-button
"
;
italicButton
.
title
=
"
Emphasis
<em> Ctrl+I
"
;
italicButton
.
title
=
"
Corsivo
<em> Ctrl+I
"
;
italicButton
.
XShift
=
"
-20px
"
;
italicButton
.
XShift
=
"
-20px
"
;
italicButton
.
textOp
=
command
.
doItalic
;
italicButton
.
textOp
=
command
.
doItalic
;
setupButton
(
italicButton
,
true
);
setupButton
(
italicButton
,
true
);
...
@@ -1008,7 +1008,7 @@ Attacklab.wmdBase = function(){
...
@@ -1008,7 +1008,7 @@ Attacklab.wmdBase = function(){
var
linkButton
=
document
.
createElement
(
"
li
"
);
var
linkButton
=
document
.
createElement
(
"
li
"
);
linkButton
.
className
=
"
wmd-button
"
;
linkButton
.
className
=
"
wmd-button
"
;
linkButton
.
id
=
"
wmd-link-button
"
;
linkButton
.
id
=
"
wmd-link-button
"
;
linkButton
.
title
=
"
Hyperlink
<a> Ctrl+L
"
;
linkButton
.
title
=
"
Collegamento
<a> Ctrl+L
"
;
linkButton
.
XShift
=
"
-40px
"
;
linkButton
.
XShift
=
"
-40px
"
;
linkButton
.
textOp
=
function
(
chunk
,
postProcessing
,
useDefaultText
){
linkButton
.
textOp
=
function
(
chunk
,
postProcessing
,
useDefaultText
){
return
command
.
doLinkOrImage
(
chunk
,
postProcessing
,
false
);
return
command
.
doLinkOrImage
(
chunk
,
postProcessing
,
false
);
...
@@ -1019,7 +1019,7 @@ Attacklab.wmdBase = function(){
...
@@ -1019,7 +1019,7 @@ Attacklab.wmdBase = function(){
var
quoteButton
=
document
.
createElement
(
"
li
"
);
var
quoteButton
=
document
.
createElement
(
"
li
"
);
quoteButton
.
className
=
"
wmd-button
"
;
quoteButton
.
className
=
"
wmd-button
"
;
quoteButton
.
id
=
"
wmd-quote-button
"
;
quoteButton
.
id
=
"
wmd-quote-button
"
;
quoteButton
.
title
=
"
Blockquot
e <blockquote> Ctrl+Q
"
;
quoteButton
.
title
=
"
Citazion
e <blockquote> Ctrl+Q
"
;
quoteButton
.
XShift
=
"
-60px
"
;
quoteButton
.
XShift
=
"
-60px
"
;
quoteButton
.
textOp
=
command
.
doBlockquote
;
quoteButton
.
textOp
=
command
.
doBlockquote
;
setupButton
(
quoteButton
,
true
);
setupButton
(
quoteButton
,
true
);
...
@@ -1028,7 +1028,7 @@ Attacklab.wmdBase = function(){
...
@@ -1028,7 +1028,7 @@ Attacklab.wmdBase = function(){
var
codeButton
=
document
.
createElement
(
"
li
"
);
var
codeButton
=
document
.
createElement
(
"
li
"
);
codeButton
.
className
=
"
wmd-button
"
;
codeButton
.
className
=
"
wmd-button
"
;
codeButton
.
id
=
"
wmd-code-button
"
;
codeButton
.
id
=
"
wmd-code-button
"
;
codeButton
.
title
=
"
Cod
e Sampl
e <pre><code> Ctrl+K
"
;
codeButton
.
title
=
"
Cod
ice sorgent
e <pre><code> Ctrl+K
"
;
codeButton
.
XShift
=
"
-80px
"
;
codeButton
.
XShift
=
"
-80px
"
;
codeButton
.
textOp
=
command
.
doCode
;
codeButton
.
textOp
=
command
.
doCode
;
setupButton
(
codeButton
,
true
);
setupButton
(
codeButton
,
true
);
...
@@ -1037,7 +1037,7 @@ Attacklab.wmdBase = function(){
...
@@ -1037,7 +1037,7 @@ Attacklab.wmdBase = function(){
var
imageButton
=
document
.
createElement
(
"
li
"
);
var
imageButton
=
document
.
createElement
(
"
li
"
);
imageButton
.
className
=
"
wmd-button
"
;
imageButton
.
className
=
"
wmd-button
"
;
imageButton
.
id
=
"
wmd-image-button
"
;
imageButton
.
id
=
"
wmd-image-button
"
;
imageButton
.
title
=
"
Im
ag
e <img> Ctrl+G
"
;
imageButton
.
title
=
"
Im
magin
e <img> Ctrl+G
"
;
imageButton
.
XShift
=
"
-100px
"
;
imageButton
.
XShift
=
"
-100px
"
;
imageButton
.
textOp
=
function
(
chunk
,
postProcessing
,
useDefaultText
){
imageButton
.
textOp
=
function
(
chunk
,
postProcessing
,
useDefaultText
){
return
command
.
doLinkOrImage
(
chunk
,
postProcessing
,
true
);
return
command
.
doLinkOrImage
(
chunk
,
postProcessing
,
true
);
...
@@ -1053,7 +1053,7 @@ Attacklab.wmdBase = function(){
...
@@ -1053,7 +1053,7 @@ Attacklab.wmdBase = function(){
var
olistButton
=
document
.
createElement
(
"
li
"
);
var
olistButton
=
document
.
createElement
(
"
li
"
);
olistButton
.
className
=
"
wmd-button
"
;
olistButton
.
className
=
"
wmd-button
"
;
olistButton
.
id
=
"
wmd-olist-button
"
;
olistButton
.
id
=
"
wmd-olist-button
"
;
olistButton
.
title
=
"
Numbered List
<ol> Ctrl+O
"
;
olistButton
.
title
=
"
Elenco numerato
<ol> Ctrl+O
"
;
olistButton
.
XShift
=
"
-120px
"
;
olistButton
.
XShift
=
"
-120px
"
;
olistButton
.
textOp
=
function
(
chunk
,
postProcessing
,
useDefaultText
){
olistButton
.
textOp
=
function
(
chunk
,
postProcessing
,
useDefaultText
){
command
.
doList
(
chunk
,
postProcessing
,
true
,
useDefaultText
);
command
.
doList
(
chunk
,
postProcessing
,
true
,
useDefaultText
);
...
@@ -1064,7 +1064,7 @@ Attacklab.wmdBase = function(){
...
@@ -1064,7 +1064,7 @@ Attacklab.wmdBase = function(){
var
ulistButton
=
document
.
createElement
(
"
li
"
);
var
ulistButton
=
document
.
createElement
(
"
li
"
);
ulistButton
.
className
=
"
wmd-button
"
;
ulistButton
.
className
=
"
wmd-button
"
;
ulistButton
.
id
=
"
wmd-ulist-button
"
;
ulistButton
.
id
=
"
wmd-ulist-button
"
;
ulistButton
.
title
=
"
Bulleted List
<ul> Ctrl+U
"
;
ulistButton
.
title
=
"
Elenco puntato
<ul> Ctrl+U
"
;
ulistButton
.
XShift
=
"
-140px
"
;
ulistButton
.
XShift
=
"
-140px
"
;
ulistButton
.
textOp
=
function
(
chunk
,
postProcessing
,
useDefaultText
){
ulistButton
.
textOp
=
function
(
chunk
,
postProcessing
,
useDefaultText
){
command
.
doList
(
chunk
,
postProcessing
,
false
,
useDefaultText
);
command
.
doList
(
chunk
,
postProcessing
,
false
,
useDefaultText
);
...
@@ -1075,7 +1075,7 @@ Attacklab.wmdBase = function(){
...
@@ -1075,7 +1075,7 @@ Attacklab.wmdBase = function(){
var
headingButton
=
document
.
createElement
(
"
li
"
);
var
headingButton
=
document
.
createElement
(
"
li
"
);
headingButton
.
className
=
"
wmd-button
"
;
headingButton
.
className
=
"
wmd-button
"
;
headingButton
.
id
=
"
wmd-heading-button
"
;
headingButton
.
id
=
"
wmd-heading-button
"
;
headingButton
.
title
=
"
Heading
<h1>/<h2> Ctrl+H
"
;
headingButton
.
title
=
"
Titolo
<h1>/<h2> Ctrl+H
"
;
headingButton
.
XShift
=
"
-160px
"
;
headingButton
.
XShift
=
"
-160px
"
;
headingButton
.
textOp
=
command
.
doHeading
;
headingButton
.
textOp
=
command
.
doHeading
;
setupButton
(
headingButton
,
true
);
setupButton
(
headingButton
,
true
);
...
@@ -1084,7 +1084,7 @@ Attacklab.wmdBase = function(){
...
@@ -1084,7 +1084,7 @@ Attacklab.wmdBase = function(){
var
hrButton
=
document
.
createElement
(
"
li
"
);
var
hrButton
=
document
.
createElement
(
"
li
"
);
hrButton
.
className
=
"
wmd-button
"
;
hrButton
.
className
=
"
wmd-button
"
;
hrButton
.
id
=
"
wmd-hr-button
"
;
hrButton
.
id
=
"
wmd-hr-button
"
;
hrButton
.
title
=
"
Horizontal Ru
le <hr> Ctrl+R
"
;
hrButton
.
title
=
"
Linea orizzonta
le <hr> Ctrl+R
"
;
hrButton
.
XShift
=
"
-180px
"
;
hrButton
.
XShift
=
"
-180px
"
;
hrButton
.
textOp
=
command
.
doHorizontalRule
;
hrButton
.
textOp
=
command
.
doHorizontalRule
;
setupButton
(
hrButton
,
true
);
setupButton
(
hrButton
,
true
);
...
@@ -1098,7 +1098,7 @@ Attacklab.wmdBase = function(){
...
@@ -1098,7 +1098,7 @@ Attacklab.wmdBase = function(){
var
undoButton
=
document
.
createElement
(
"
li
"
);
var
undoButton
=
document
.
createElement
(
"
li
"
);
undoButton
.
className
=
"
wmd-button
"
;
undoButton
.
className
=
"
wmd-button
"
;
undoButton
.
id
=
"
wmd-undo-button
"
;
undoButton
.
id
=
"
wmd-undo-button
"
;
undoButton
.
title
=
"
Undo
- Ctrl+Z
"
;
undoButton
.
title
=
"
Annulla
- Ctrl+Z
"
;
undoButton
.
XShift
=
"
-200px
"
;
undoButton
.
XShift
=
"
-200px
"
;
undoButton
.
execute
=
function
(
manager
){
undoButton
.
execute
=
function
(
manager
){
manager
.
undo
();
manager
.
undo
();
...
@@ -1109,13 +1109,13 @@ Attacklab.wmdBase = function(){
...
@@ -1109,13 +1109,13 @@ Attacklab.wmdBase = function(){
var
redoButton
=
document
.
createElement
(
"
li
"
);
var
redoButton
=
document
.
createElement
(
"
li
"
);
redoButton
.
className
=
"
wmd-button
"
;
redoButton
.
className
=
"
wmd-button
"
;
redoButton
.
id
=
"
wmd-redo-button
"
;
redoButton
.
id
=
"
wmd-redo-button
"
;
redoButton
.
title
=
"
R
edo
- Ctrl+Y
"
;
redoButton
.
title
=
"
R
ipeti
- Ctrl+Y
"
;
if
(
/win/
.
test
(
nav
.
platform
.
toLowerCase
()))
{
if
(
/win/
.
test
(
nav
.
platform
.
toLowerCase
()))
{
redoButton
.
title
=
"
R
edo
- Ctrl+Y
"
;
redoButton
.
title
=
"
R
ipeti
- Ctrl+Y
"
;
}
}
else
{
else
{
// mac and other non-Windows platforms
// mac and other non-Windows platforms
redoButton
.
title
=
"
R
edo
- Ctrl+Shift+Z
"
;
redoButton
.
title
=
"
R
ipeti
- Ctrl+Shift+Z
"
;
}
}
redoButton
.
XShift
=
"
-220px
"
;
redoButton
.
XShift
=
"
-220px
"
;
redoButton
.
execute
=
function
(
manager
){
redoButton
.
execute
=
function
(
manager
){
...
...
forum/skins/light/media/images/ubuntu/header-shadow.png
0 → 100644
View file @
1473dfd2
205 Bytes
forum/skins/light/media/style/style.css
View file @
1473dfd2
...
@@ -187,8 +187,9 @@ blockquote blockquote {
...
@@ -187,8 +187,9 @@ blockquote blockquote {
#wrapper
,
#announcement
{
#wrapper
,
#announcement
{
margin
:
auto
;
margin
:
auto
;
padding
:
0
;
padding
:
0
5px
;
width
:
990px
;
min-width
:
985px
;
margin
:
0
20px
;
background-color
:
#FFF
;
background-color
:
#FFF
;
}
}
...
@@ -201,11 +202,10 @@ blockquote blockquote {
...
@@ -201,11 +202,10 @@ blockquote blockquote {
padding
:
0
5px
;
padding
:
0
5px
;
position
:
relative
;
position
:
relative
;
font-size
:
12px
;
font-size
:
12px
;
}
}
#roof
{
#roof
{
background
:
url("
images/light
/topnav_divider.png")
no-repeat
scroll
left
top
transparent
!important
;
background
:
url("
../images/ubuntu
/topnav_divider.png")
no-repeat
scroll
left
top
transparent
!important
;
height
:
100%
;
height
:
100%
;
padding-left
:
2px
;
padding-left
:
2px
;
}
}
...
@@ -234,14 +234,16 @@ blockquote blockquote {
...
@@ -234,14 +234,16 @@ blockquote blockquote {
}
}
#ground
{
#ground
{
background
:
none
repeat
scroll
0
0
#BDCCED
;
border-top
:
1px
solid
#000000
;
padding-bottom
:
0
;
padding-bottom
:
0
;
padding-top
:
6px
;
padding-top
:
6px
;
text-align
:
center
;
text-align
:
center
;
width
:
990px
;
width
:
990px
;
}
}
#ground
a
,
#ground
a
:hover
,
#ground
a
:visited
{
color
:
black
;
}
#top
{
#top
{
float
:
right
;
float
:
right
;
padding
:
3px
;
padding
:
3px
;
...
@@ -352,14 +354,34 @@ blockquote blockquote {
...
@@ -352,14 +354,34 @@ blockquote blockquote {
display
:
inline
;
display
:
inline
;
}
}
#sub_header
{
background
:
url("../images/ubuntu/header-shadow.png")
repeat-x
scroll
center
top
#F7F7F7
;
border-radius
:
0
0
8px
8px
;
-webkit-border-radius
:
0
0
8px
8px
;
-moz-border-radius
:
0
0
8px
8px
;
margin
:
0
auto
25px
auto
;
position
:
relative
;
width
:
96%
;
background-color
:
#F7F7F7
;
box-shadow
:
0
1px
1px
#DFDFDF
;
-webkit-box-shadow
:
0
1px
1px
#DFDFDF
;
-moz-box-shadow
:
0
1px
1px
#DFDFDF
;
font-size
:
12px
;
padding-top
:
16px
;
padding-right
:
15px
;
height
:
44px
;
}
#sub_header_options
{
float
:
left
;
}
#sub_header_search
{
float
:
left
;
}
#searchBar
{
#searchBar
{
text-align
:
center
;
float
:
left
;
background-color
:
#B6C4E2
;
border-color
:
#EEEEEC
#A9ACA5
#BABDB6
#EEEEEC
;
border-style
:
solid
;
border-width
:
1px
;
padding
:
4px
0
0
;
width
:
988px
;
}
}
#searchBar
.content
{
#searchBar
.content
{
...
...
forum/skins/light/templates/footer.html
View file @
1473dfd2
...
@@ -2,18 +2,20 @@
...
@@ -2,18 +2,20 @@
<div>
<div>
<div
class=
"footerLinks"
>
<
!--<
div class="footerLinks" >
{% loadregistry footer_links %}<span class="link-separator"> |</span>{% endloadregistry %}
{% loadregistry footer_links %}<span class="link-separator"> |</span>{% endloadregistry %}
</div>
</div>
-->
<p>
<p>
<a
href=
"http://osqa.net"
target=
"_blank"
title=
"OSQA {{ settings.OSQA_VERSION }} ({{ settings.SVN_REVISION }})"
>
<a
href=
"http://osqa.net"
target=
"_blank"
title=
"OSQA {{ settings.OSQA_VERSION }} ({{ settings.SVN_REVISION }})"
>
powered by OSQA
powered by OSQA
</a>
</a>
•
<a
href=
"http://www.postgresql.org/"
target=
"_blank"
>
PostgreSQL
</a>
database
<br/>
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.
</p>
</p>
</div>
</div>
<div
id=
"licenseLogo"
>
<!--
<div id="licenseLogo">
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">
<img src="{% media "/media/images/by-sa-88x31.png" %}" title="Creative Commons: Attribution - Share Alike" alt="cc-by-sa" width="88" height="31" />
<img src="{% media "/media/images/by-sa-88x31.png" %}" title="Creative Commons: Attribution - Share Alike" alt="cc-by-sa" width="88" height="31" />
</a>
</a>
</div>
</div>
-->
forum/skins/light/templates/header.html
View file @
1473dfd2
...
@@ -29,25 +29,27 @@
...
@@ -29,25 +29,27 @@
</div>
</div>
<div
class=
"clear"
></div>
<div
class=
"clear"
></div>
<!--<div id="top">
<div
id=
"sub_header"
>
{% loadregistry header_links %}{% endloadregistry %}
</div>-->
<div
id=
"searchBar"
>
<div
id=
"searchBar"
>
<form
action=
"{% url search %}"
method=
"get"
>
<form
action=
"{% url search %}"
method=
"get"
>
{% csrf_token %}
<div
class=
"options"
id=
"sub_header_options"
>
<div>
<input
type=
"text"
class=
"searchInput"
value=
"{{ keywords }}"
name=
"q"
id=
"keywords"
/>
<input
type=
"submit"
name=
"Submit"
value=
"{% trans "
search
"
%}"
class=
"searchBtn"
/>
</div>
<div
class=
"options"
>
<input
id=
"type-question"
type=
"radio"
value=
"question"
name=
"t"
<input
id=
"type-question"
type=
"radio"
value=
"question"
name=
"t"
checked=
"checked"
/><label
for=
"type-question"
>
{% trans "questions" %}
</label>
checked=
"checked"
/><label
for=
"type-question"
>
{% trans "questions" %}
</label>
<input
id=
"type-tag"
type=
"radio"
value=
"tag"
name=
"t"
/><label
for=
"type-tag"
>
{% trans "tags" %}
</label>
<input
id=
"type-tag"
type=
"radio"
value=
"tag"
name=
"t"
/><label
for=
"type-tag"
>
{% trans "tags" %}
</label>
<input
id=
"type-user"
type=
"radio"
value=
"user"
name=
"t"
/><label
for=
"type-user"
>
{% trans "users" %}
</label>
<input
id=
"type-user"
type=
"radio"
value=
"user"
name=
"t"
/><label
for=
"type-user"
>
{% trans "users" %}
</label>
</div>
</div>
{% csrf_token %}
<div
id=
"sub_header_search"
>
<input
type=
"text"
class=
"searchInput"
value=
"{{ keywords }}"
name=
"q"
id=
"keywords"
/>
<input
type=
"submit"
name=
"Submit"
value=
"{% trans "
search
"
%}"
class=
"searchBtn"
/>
</div>
</form>
</form>
</div>
</div>
<div
id=
"top"
>
{% loadregistry header_links %}{% endloadregistry %}
</div>
</div>
<div
class=
"clear"
></div>
{% if settings.USE_ANNOUNCEMENT_BAR|or_preview:request %}
{% if settings.USE_ANNOUNCEMENT_BAR|or_preview:request %}
<div
id=
"announcement"
>
<div
id=
"announcement"
>
{{ settings.ANNOUNCEMENT_BAR|or_preview:request|static_content:settings.ANNOUNCEMENT_BAR_RENDER_MODE }}
{{ settings.ANNOUNCEMENT_BAR|or_preview:request|static_content:settings.ANNOUNCEMENT_BAR_RENDER_MODE }}
...
...
forum_modules/openidauth/authentication.py
View file @
1473dfd2
This diff is collapsed.
Click to expand it.
locale/it/LC_MESSAGES/it.po
View file @
1473dfd2
This diff is collapsed.
Click to expand it.
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