[MERGE] forward port of branch 7.0 up to revid 3973 chs@openerp.com-20130611145028-f98x6inytlr3ijjg

bzr revid: chs@openerp.com-20130611155251-zk0qkk70z30n81vl
This commit is contained in:
Christophe Simonis 2013-06-11 17:52:51 +02:00
commit 6263673720
238 changed files with 4047 additions and 3196 deletions

View File

@ -32,6 +32,7 @@ except ImportError:
import openerp
import openerp.modules.registry
from openerp.tools.translate import _
from openerp.tools import config
from .. import http
openerpweb = http
@ -84,9 +85,9 @@ def rjsmin(script):
).strip()
return result
def db_list(req):
def db_list(req, force=False):
proxy = req.session.proxy("db")
dbs = proxy.list()
dbs = proxy.list(force)
h = req.httprequest.environ['HTTP_HOST'].split(':')[0]
d = h.split('.')[0]
r = openerp.tools.config['dbfilter'].replace('%h', h).replace('%d', d)
@ -102,25 +103,21 @@ def db_monodb_redirect(req):
if db_url:
return (db_url, False)
try:
dbs = db_list(req)
except Exception:
# ignore access denied
dbs = []
dbs = db_list(req, True)
# 2 use the database from the cookie if it's listable and still listed
cookie_db = req.httprequest.cookies.get('last_used_database')
if cookie_db in dbs:
db = cookie_db
# 3 use the first db
if dbs and not db:
# 3 use the first db if user can list databases
if dbs and not db and (config['list_db'] or len(dbs) == 1):
db = dbs[0]
# redirect to the chosen db if multiple are available
if db and len(dbs) > 1:
query = dict(urlparse.parse_qsl(req.httprequest.query_string, keep_blank_values=True))
query.update({ 'db': db })
query.update({'db': db})
redirect = req.httprequest.path + '?' + urllib.urlencode(query)
return (db, redirect)
@ -281,8 +278,9 @@ def concat_files(file_list, reader=None, intersperse=""):
if reader is None:
def reader(f):
with open(f, 'rb') as fp:
return fp.read()
import codecs
with codecs.open(f, 'rb', "utf-8-sig") as fp:
return fp.read().encode("utf-8")
files_content = []
for fname in file_list:
@ -767,7 +765,14 @@ class Database(openerpweb.Controller):
@openerpweb.jsonrequest
def get_list(self, req):
return db_list(req)
# TODO change js to avoid calling this method if in monodb mode
try:
return db_list(req)
except xmlrpclib.Fault:
monodb = db_monodb(req)
if monodb:
return [monodb]
raise
@openerpweb.jsonrequest
def create(self, req, fields):
@ -779,14 +784,6 @@ class Database(openerpweb.Controller):
params['db_lang'],
params['create_admin_pwd'])
@openerpweb.jsonrequest
def duplicate(self, req, fields):
params = dict(map(operator.itemgetter('name', 'value'), fields))
return req.session.proxy("db").duplicate_database(
params['super_admin_pwd'],
params['db_original_name'],
params['db_name'])
@openerpweb.jsonrequest
def duplicate(self, req, fields):
params = dict(map(operator.itemgetter('name', 'value'), fields))
@ -795,7 +792,6 @@ class Database(openerpweb.Controller):
params['db_original_name'],
params['db_name'],
)
return req.session.proxy("db").duplicate_database(*duplicate_attrs)
@openerpweb.jsonrequest
@ -803,9 +799,9 @@ class Database(openerpweb.Controller):
password, db = operator.itemgetter(
'drop_pwd', 'drop_db')(
dict(map(operator.itemgetter('name', 'value'), fields)))
try:
return req.session.proxy("db").drop(password, db)
if req.session.proxy("db").drop(password, db):return True
except openerp.exceptions.AccessDenied:
return {'error': 'AccessDenied', 'title': 'Drop Database'}
except Exception:
@ -1389,7 +1385,7 @@ class Binary(openerpweb.Controller):
else:
try:
# create an empty registry
registry = openerp.modules.registry.Registry(dbname.lower())
registry = openerp.modules.registry.Registry(dbname)
with registry.cursor() as cr:
cr.execute("""SELECT c.logo_web
FROM res_users u
@ -1499,6 +1495,8 @@ class Export(openerpweb.Controller):
if all(dict(attrs).get('readonly', True)
for attrs in field.get('states', {}).values()):
continue
if not field.get('exportable', True):
continue
id = prefix + (prefix and '/'or '') + field_name
name = parent_name + (parent_name and '/' or '') + field['string']

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -498,9 +498,13 @@ class DisableCacheMiddleware(object):
def session_path():
try:
username = getpass.getuser()
except Exception:
username = "unknown"
import pwd
username = pwd.getpwuid(os.geteuid()).pw_name
except ImportError:
try:
username = getpass.getuser()
except Exception:
username = "unknown"
path = os.path.join(tempfile.gettempdir(), "oe-sessions-" + username)
try:
os.mkdir(path, 0700)

View File

@ -1,4 +1,3 @@
#!/usr/bin/python
import datetime
import babel
import dateutil.relativedelta

View File

@ -296,6 +296,11 @@
// Bind the window resize event when the width or height is auto or %
if (/auto|%/.test("" + options.width + options.height))
$(window).resize(function() {
//Forcefully blurred iframe contentWindow, chrome, IE, safari doesn't trigger blur on window resize and due to which text disappears
var contentWindow = editor.$frame[0].contentWindow;
if(!$.browser.mozilla && contentWindow){
$(contentWindow).trigger('blur');
}
// CHM Note MonkeyPatch: if the DOM is not remove, refresh the cleditor
if(editor.$main.parent().parent().size()) {
refresh(editor);

View File

@ -7,7 +7,7 @@
* date.js // English (United States)
* date-en-US.js // English (United States)
* date-de-DE.js // Deutsch (Deutschland)
* date-es-MX.js // français (France)
* date-es-MX.js // français (France)
*/
alert(
@ -17,5 +17,5 @@ alert(
" date.js // English (United States)\n" +
" date-en-US.js // English (United States)\n" +
" date-de-DE.js // Deutsch (Deutschland)\n" +
" date-es-MX.js // français (France)\n"
" date-es-MX.js // français (France)\n"
);

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 B

After

Width:  |  Height:  |  Size: 87 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 95 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 B

After

Width:  |  Height:  |  Size: 107 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 B

After

Width:  |  Height:  |  Size: 97 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 B

After

Width:  |  Height:  |  Size: 86 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 B

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 B

After

Width:  |  Height:  |  Size: 87 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 B

After

Width:  |  Height:  |  Size: 87 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 B

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 95 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 B

After

Width:  |  Height:  |  Size: 107 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 B

After

Width:  |  Height:  |  Size: 118 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 B

After

Width:  |  Height:  |  Size: 86 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -1,5 +1,5 @@
repo: 076b192d0d8ab2b92d1dbcfa3da055382f30eaea
node: 142c22b230636674a0cee6bc29e6975f0f1600a5
node: 7ee0bc7b4e9138f485cdc9ec791961d8ef452f17
branch: default
latesttag: 0.7
latesttagdistance: 9
latesttagdistance: 11

View File

@ -273,7 +273,7 @@ var py = {};
var Special = '[:;.,`@]';
var Funny = group(Operator, Bracket, Special);
var ContStr = group("[uU]?'([^']*)'", '[uU]?"([^"]*)"');
var ContStr = group("([uU])?'([^']*)'", '([uU])?"([^"]*)"');
var PseudoToken = Whitespace + group(Number, Funny, ContStr, Name);
@ -311,7 +311,8 @@ var py = {};
} else if (string_pattern.test(token)) {
var m = string_pattern.exec(token);
tokens.push(create(symbols['(string)'], {
value: (m[2] !== undefined ? m[2] : m[3])
unicode: !!(m[2] || m[4]),
value: (m[3] !== undefined ? m[3] : m[5])
}));
} else if (token in symbols) {
var symbol;
@ -393,13 +394,14 @@ var py = {};
switch(val.constructor) {
case Object:
var out = py.PY_call(py.object);
for(var k in val) {
if (val.hasOwnProperty(k)) {
out[k] = val[k];
// TODO: why py.object instead of py.dict?
var o = py.PY_call(py.object);
for (var prop in val) {
if (val.hasOwnProperty(prop)) {
o[prop] = val[prop];
}
}
return out;
return o;
case Array:
return py.list.fromJSON(val);
}
@ -521,7 +523,7 @@ var py = {};
}
};
py.PY_getAttr = function (o, attr_name) {
return PY_ensurepy(o.__getattribute__(attr_name),attr_name);
return PY_ensurepy(o.__getattribute__(attr_name));
};
py.PY_str = function (o) {
var v = o.__str__();
@ -762,14 +764,7 @@ var py = {};
// Conversion
toJSON: function () {
var out = {};
for(var k in this) {
if (this.hasOwnProperty(k) && !/^__/.test(k)) {
var val = this[k];
out[k] = val.toJSON ? val.toJSON() : val;
}
}
return out;
throw new Error(this.constructor.name + ' can not be converted to JSON');
}
});
var NoneType = py.type('NoneType', null, {
@ -998,7 +993,7 @@ var py = {};
}
var t = py.PY_call(py.tuple);
for(var i=0; i<ar.length; ++i) {
t._values.push(PY_ensurepy(ar[i],i));
t._values.push(PY_ensurepy(ar[i]));
}
return t;
}
@ -1032,7 +1027,7 @@ var py = {};
if (!d.hasOwnProperty(k)) { continue; }
instance.__setitem__(
py.str.fromJSON(k),
PY_ensurepy(d[k],k));
PY_ensurepy(d[k]));
}
return instance;
},
@ -1108,6 +1103,114 @@ var py = {};
});
/**
* Implements the decoding of Python string literals (embedded in
* JS strings) into actual JS strings. This includes the decoding
* of escapes into their corresponding JS
* characters/codepoints/whatever.
*
* The ``unicode`` flags notes whether the literal should be
* decoded as a bytestring literal or a unicode literal, which
* pretty much only impacts decoding (or not) of unicode escapes
* at this point since bytestrings are not technically handled
* (everything is decoded to JS "unicode" strings)
*
* Eventurally, ``str`` could eventually use typed arrays, that'd
* be interesting...
*/
var PY_decode_string_literal = function (str, unicode) {
var out = [], code;
// Directly maps a single escape code to an output
// character
var direct_map = {
'\\': '\\',
'"': '"',
"'": "'",
'a': '\x07',
'b': '\x08',
'f': '\x0c',
'n': '\n',
'r': '\r',
't': '\t',
'v': '\v'
};
for (var i=0; i<str.length; ++i) {
if (str[i] !== '\\') {
out.push(str[i]);
continue;
}
var escape = str[i+1];
if (escape in direct_map) {
out.push(direct_map[escape]);
++i;
continue;
}
switch (escape) {
// Ignored
case '\n': ++i; continue;
// Character named name in the Unicode database (Unicode only)
case 'N':
if (!unicode) { break; }
throw Error("SyntaxError: \\N{} escape not implemented");
case 'u':
if (!unicode) { break; }
var uni = str.slice(i+2, i+6);
if (!/[0-9a-f]{4}/i.test(uni)) {
throw new Error([
"SyntaxError: (unicode error) 'unicodeescape' codec",
" can't decode bytes in position ",
i, "-", i+4,
": truncated \\uXXXX escape"
].join(''));
}
code = parseInt(uni, 16);
out.push(String.fromCharCode(code));
// escape + 4 hex digits
i += 5;
continue;
case 'U':
if (!unicode) { break; }
// TODO: String.fromCodePoint
throw Error("SyntaxError: \\U escape not implemented");
case 'x':
// get 2 hex digits
var hex = str.slice(i+2, i+4);
if (!/[0-9a-f]{2}/i.test(hex)) {
if (!unicode) {
throw new Error('ValueError: invalid \\x escape');
}
throw new Error([
"SyntaxError: (unicode error) 'unicodeescape'",
" codec can't decode bytes in position ",
i, '-', i+2,
": truncated \\xXX escape"
].join(''))
}
code = parseInt(hex, 16);
out.push(String.fromCharCode(code));
// skip escape + 2 hex digits
i += 3;
continue;
default:
// Check if octal
if (!/[0-8]/.test(escape)) { break; }
var r = /[0-8]{1,3}/g;
r.lastIndex = i+1;
var m = r.exec(str);
var oct = m[0];
code = parseInt(oct, 8);
out.push(String.fromCharCode(code));
// skip matchlength
i += oct.length;
continue;
}
out.push('\\');
}
return out.join('');
};
// All binary operators with fallbacks, so they can be applied generically
var PY_operators = {
'==': ['eq', 'eq', function (a, b) { return a === b; }],
@ -1217,7 +1320,8 @@ var py = {};
}
return PY_ensurepy(val, expr.value);
case '(string)':
return py.str.fromJSON(expr.value);
return py.str.fromJSON(PY_decode_string_literal(
expr.value, expr.unicode));
case '(number)':
return py.float.fromJSON(expr.value);
case '(constant)':

File diff suppressed because it is too large Load Diff

View File

@ -511,9 +511,11 @@ $sheet-padding: 16px
width: 100% !important
textarea
width: 100% !important
.text-core .text-wrap .text-dropdown .text-list .text-suggestion em
font-style: italic
text-decoration: none
.text-core
min-height: 22px
.text-wrap .text-dropdown .text-list .text-suggestion em
font-style: italic
text-decoration: none
margin-bottom: 1px
// }}}
// Tooltips {{{
@ -605,7 +607,6 @@ $sheet-padding: 16px
display: none
position: absolute
top: 26px
left: 0
z-index: 3
margin: 0
padding: 0
@ -1356,13 +1357,13 @@ $sheet-padding: 16px
top: 0
right: 18px
width: 15px
height: 100%
height: 24px
background: url(../img/search_reset.gif) center center no-repeat
.oe_searchview_unfold_drawer
position: absolute
top: 0
right: 0
height: 100%
height: 24px
padding: 0 7px 0 4px
color: #ccc
cursor: pointer
@ -1395,13 +1396,12 @@ $sheet-padding: 16px
.oe_searchview_facets
min-height: 22px
margin-left: 15px
margin: 0 35px 0 15px
*
vertical-align: top
display: inline-block
line-height: 17px
.oe_searchview_facet
height: 18px
margin: 1px 0
font-size: 11px
&:focus
@ -1423,7 +1423,7 @@ $sheet-padding: 16px
border-color: $tag-border-selected
@include box-shadow(0 0 3px 1px $tag-border-selected)
.oe_facet_values
background: #f0f0fa
background: $tag-bg-light
@include radius(0 3px 3px 0)
.oe_facet_category, .oe_facet_value
height: 18px
@ -1462,6 +1462,7 @@ $sheet-padding: 16px
display: block
.oe_searchview_drawer
cursor: default
position: absolute
z-index: 2
// detach drawer from field slightly
@ -1575,7 +1576,6 @@ $sheet-padding: 16px
list-style: none
padding: 0
li
cursor: pointer
position: relative
list-style: none
margin: 0
@ -1888,6 +1888,8 @@ $sheet-padding: 16px
.oe_form_field_text textarea,
.oe_form_field_selection select
width: 100%
.oe_notebook_page .oe_form_field_text textarea
min-height: 96px
.oe_form_field_text.oe_inline, .oe_form_field_text.oe_inline > textarea
width: 500px
h1, h2, h3, h4, h5, h6
@ -1973,6 +1975,9 @@ $sheet-padding: 16px
margin-top: 32px
margin-bottom: 32px
text-align: justify
.oe_form_field_html .oe_input_icon
float: right
margin: 4px 7px
.oe_form_editable
.oe_form
@ -2335,7 +2340,6 @@ $sheet-padding: 16px
th.oe_sortable div
position: relative
th.oe_sortable div:after
float: right
margin-right: 6px
content: ""
margin-top: 7px
@ -2344,11 +2348,13 @@ $sheet-padding: 16px
border-color: #000 transparent
visibility: hidden
th.sortup div:after
float: right
visibility: visible
@include opacity(0.6)
.oe_list_header_many2many_tags
min-width: 70px
th.sortdown div:after
float: right
border-bottom: none
border-left: 4px solid transparent
border-right: 4px solid transparent

0
addons/web/static/src/font/entypo-webfont.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

0
addons/web/static/src/font/mnmliconsv21-webfont.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 822 B

After

Width:  |  Height:  |  Size: 782 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 395 B

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 486 B

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 B

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 B

After

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 709 B

After

Width:  |  Height:  |  Size: 689 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 B

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 B

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 698 B

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 585 B

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 565 B

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 573 B

After

Width:  |  Height:  |  Size: 571 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 580 B

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 570 B

After

Width:  |  Height:  |  Size: 563 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 596 B

After

Width:  |  Height:  |  Size: 591 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 529 B

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 B

After

Width:  |  Height:  |  Size: 443 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 704 B

After

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 466 B

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 556 B

After

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 704 B

After

Width:  |  Height:  |  Size: 693 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 371 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 751 B

After

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 B

After

Width:  |  Height:  |  Size: 754 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 394 B

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 B

After

Width:  |  Height:  |  Size: 414 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 B

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 459 B

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 539 B

After

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 459 B

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 830 B

After

Width:  |  Height:  |  Size: 758 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 767 B

After

Width:  |  Height:  |  Size: 699 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 709 B

After

Width:  |  Height:  |  Size: 689 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 B

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 B

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 585 B

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 565 B

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 570 B

After

Width:  |  Height:  |  Size: 563 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 596 B

After

Width:  |  Height:  |  Size: 591 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 573 B

After

Width:  |  Height:  |  Size: 571 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 580 B

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 529 B

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 B

After

Width:  |  Height:  |  Size: 443 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 704 B

After

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 466 B

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 556 B

After

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 704 B

After

Width:  |  Height:  |  Size: 693 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 371 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 751 B

After

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 B

After

Width:  |  Height:  |  Size: 754 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 394 B

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 B

After

Width:  |  Height:  |  Size: 414 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 B

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 459 B

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 539 B

After

Width:  |  Height:  |  Size: 528 B

Some files were not shown because too many files have changed in this diff Show More