From 923d3e7573c8b7850d2c4f2cc0bfac95594d30c1 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Sun, 13 May 2012 14:02:28 +0200 Subject: [PATCH] Many, many stuff --- .gitignore | 1 + app/Global.scala | 4 +- app/SystemEnv.scala | 19 +- app/assets/javascripts/analyse.js | 30 + app/assets/javascripts/chart.js | 13 + app/assets/javascripts/clock.js | 64 + app/assets/javascripts/ctrl.js | 297 +++ app/assets/javascripts/game.js | 637 +++++ app/assets/javascripts/gamelist.js | 74 + app/assets/javascripts/gamestats.js | 25 + app/assets/javascripts/hook.js | 204 ++ app/assets/javascripts/infinitescroll.js | 13 + app/assets/javascripts/main.js | 9 + app/assets/javascripts/opening.js | 99 + app/assets/javascripts/socket.js | 104 + app/assets/javascripts/translation.js | 16 + .../vendor/google.corechart.min.js | 773 ++++++ .../vendor/jquery.infinitescroll.min.js | 16 + app/assets/javascripts/vendor/jquery.min.js | 4 + .../javascripts/vendor/jquery.mousewheel.js | 84 + .../vendor/jquery.ui.autocomplete.min.js | 22 + .../javascripts/vendor/jquery.ui.min.js | 29 + .../javascripts/vendor/qtip/jquery.qtip.css | 137 ++ .../javascripts/vendor/qtip/jquery.qtip.js | 2109 +++++++++++++++++ .../vendor/qtip/jquery.qtip.min.css | 1 + .../vendor/qtip/jquery.qtip.min.js | 14 + app/assets/javascripts/vendor/tipsy.min.js | 2 + .../javascripts/vendor/tipsy/images/tipsy.gif | Bin 0 -> 58 bytes .../vendor/tipsy/javascripts/jquery.tipsy.js | 200 ++ .../tipsy/javascripts/jquery.tipsy.min.js | 1 + .../vendor/tipsy/stylesheets/tipsy.css | 12 + app/controllers/Ai.scala | 2 +- app/controllers/App.scala | 4 +- app/controllers/AppApi.scala | 6 +- app/controllers/Auth.scala | 6 +- app/controllers/I18n.scala | 12 + app/controllers/LilaController.scala | 17 +- app/controllers/Lobby.scala | 6 +- app/controllers/Main.scala | 15 +- app/controllers/RequestGetter.scala | 12 +- app/controllers/User.scala | 21 + app/controllers/Wiki.scala | 12 + app/i18n/I18nDomain.scala | 26 + app/i18n/I18nKeys.scala | 158 ++ app/i18n/I18nPool.scala | 20 + app/i18n/I18nRequestHandler.scala | 23 + app/i18n/LangList.scala | 173 ++ app/i18n/Translator.scala | 27 + app/model/User.scala | 2 + app/templating/AssetHelper.scala | 19 + app/templating/Environment.scala | 19 + app/templating/I18nHelper.scala | 33 + app/templating/RequestHelper.scala | 9 + app/templating/StringHelper.scala | 28 + app/templating/UiHelper.scala | 17 + app/ui/Menu.scala | 32 + app/views/auth/miniLogin.scala.html | 17 + app/views/home.scala.html | 10 +- app/views/layout.scala.html | 93 + bin/asset-dump | 25 + bin/trans-dump | 7 +- bin/trans-import | 10 +- cli/src/main/scala/Main.scala | 4 + cli/src/main/scala/TransJsDump.scala | 60 + conf/messages | 139 ++ conf/messages.af | 83 + conf/messages.ar | 123 + conf/messages.az | 118 + conf/messages.be | 138 ++ conf/messages.bg | 128 + conf/messages.bs | 129 + conf/messages.ca | 138 ++ conf/messages.cs | 138 ++ conf/messages.cy | 119 + conf/messages.da | 130 + conf/messages.de | 138 ++ conf/messages.el | 130 + conf/messages.eo | 130 + conf/messages.es | 138 ++ conf/messages.et | 99 + conf/messages.fa | 119 + conf/messages.fi | 130 + conf/messages.fp | 80 + conf/messages.fr | 139 ++ conf/messages.ga | 46 + conf/messages.gd | 119 + conf/messages.gl | 138 ++ conf/messages.he | 126 + conf/messages.hi | 116 + conf/messages.hr | 129 + conf/messages.hu | 138 ++ conf/messages.hy | 128 + conf/messages.id | 109 + conf/messages.is | 102 + conf/messages.it | 138 ++ conf/messages.ja | 129 + conf/messages.ka | 119 + conf/messages.lt | 132 ++ conf/messages.lv | 131 + conf/messages.mk | 127 + conf/messages.mn | 126 + conf/messages.mr | 109 + conf/messages.nb | 127 + conf/messages.nl | 138 ++ conf/messages.nn | 119 + conf/messages.no | 130 + conf/messages.pl | 138 ++ conf/messages.ps | Bin 0 -> 3286 bytes conf/messages.pt | 138 ++ conf/messages.ro | 128 + conf/messages.ru | 138 ++ conf/messages.si | 3 + conf/messages.sk | 138 ++ conf/messages.sl | 130 + conf/messages.sq | 133 ++ conf/messages.sr | 138 ++ conf/messages.sv | 138 ++ conf/messages.sw | 32 + conf/messages.te | 38 + conf/messages.th | 130 + conf/messages.tk | 102 + conf/messages.tp | 130 + conf/messages.tr | 138 ++ conf/messages.uk | 138 ++ conf/messages.vi | 109 + conf/messages.zh | 128 + conf/routes | 10 + project/Build.scala | 17 +- public/browser.html | 28 + public/favicon.ico | Bin 0 -> 1342 bytes public/images/add.png | Bin 0 -> 1114 bytes public/images/balloon.png | Bin 0 -> 704 bytes public/images/big-right.png | Bin 0 -> 944 bytes public/images/black_king.png | Bin 0 -> 1500 bytes public/images/browser-chrome.png | Bin 0 -> 5995 bytes public/images/browser-firefox.png | Bin 0 -> 8367 bytes public/images/browser-opera.png | Bin 0 -> 4111 bytes public/images/browser-safari.png | Bin 0 -> 8276 bytes public/images/browsers.png | Bin 0 -> 26634 bytes public/images/browsers.xcf | Bin 0 -> 37455 bytes public/images/buttons.png | Bin 0 -> 13118 bytes public/images/clock.png | Bin 0 -> 706 bytes public/images/close24.png | Bin 0 -> 4347 bytes public/images/engine_big.png | Bin 0 -> 1079 bytes public/images/engine_small.png | Bin 0 -> 350 bytes public/images/error.jpg | Bin 0 -> 140246 bytes public/images/exchange.png | Bin 0 -> 20596 bytes public/images/eye.png | Bin 0 -> 987 bytes public/images/feed-balloon.png | Bin 0 -> 723 bytes public/images/head_bg.png | Bin 0 -> 234 bytes public/images/hloader.gif | Bin 0 -> 10363 bytes public/images/interrogation.png | Bin 0 -> 1011 bytes public/images/kb14.png | Bin 0 -> 433 bytes public/images/kw14.png | Bin 0 -> 428 bytes public/images/loader2.gif | Bin 0 -> 2485 bytes public/images/opensource.png | Bin 0 -> 3799 bytes public/images/over5.png | Bin 0 -> 1738 bytes public/images/play32.png | Bin 0 -> 1931 bytes public/images/rematch.gif | Bin 0 -> 1200 bytes public/images/s16.png | Bin 0 -> 6457 bytes public/images/sover.png | Bin 0 -> 10468 bytes public/images/sprite.png | Bin 0 -> 11319 bytes public/images/sprite_color.png | Bin 0 -> 5685 bytes public/images/sprite_color_24.png | Bin 0 -> 3318 bytes public/images/sprite_mini.png | Bin 0 -> 4099 bytes public/images/sprite_question.png | Bin 0 -> 2944 bytes public/images/sprite_question.xcf | Bin 0 -> 19397 bytes public/images/system.png | Bin 0 -> 493 bytes public/images/user.png | Bin 0 -> 608 bytes public/images/white_king.png | Bin 0 -> 1492 bytes public/javascripts/deps.min.js | 122 + public/sound/alert.mp3 | Bin 0 -> 22141 bytes public/sound/alert.ogg | Bin 0 -> 10233 bytes public/stylesheets/analyse.css | 104 + public/stylesheets/board.css | 798 +++++++ public/stylesheets/common.css | 500 ++++ public/stylesheets/gamelist.css | 140 ++ public/stylesheets/gamestats.css | 30 + public/stylesheets/hook.css | 123 + public/stylesheets/jquery-ui.css | 85 + public/stylesheets/opening.css | 65 + public/stylesheets/reset.css | 8 + public/stylesheets/share.css | 42 + public/stylesheets/tipsy.css | 13 + public/stylesheets/tooltip.css | 67 + public/stylesheets/translation.css | 118 + public/stylesheets/wiki.css | 36 + 187 files changed, 15515 insertions(+), 58 deletions(-) create mode 100644 app/assets/javascripts/analyse.js create mode 100644 app/assets/javascripts/chart.js create mode 100644 app/assets/javascripts/clock.js create mode 100644 app/assets/javascripts/ctrl.js create mode 100644 app/assets/javascripts/game.js create mode 100644 app/assets/javascripts/gamelist.js create mode 100644 app/assets/javascripts/gamestats.js create mode 100644 app/assets/javascripts/hook.js create mode 100644 app/assets/javascripts/infinitescroll.js create mode 100644 app/assets/javascripts/main.js create mode 100644 app/assets/javascripts/opening.js create mode 100644 app/assets/javascripts/socket.js create mode 100644 app/assets/javascripts/translation.js create mode 100644 app/assets/javascripts/vendor/google.corechart.min.js create mode 100644 app/assets/javascripts/vendor/jquery.infinitescroll.min.js create mode 100644 app/assets/javascripts/vendor/jquery.min.js create mode 100644 app/assets/javascripts/vendor/jquery.mousewheel.js create mode 100644 app/assets/javascripts/vendor/jquery.ui.autocomplete.min.js create mode 100644 app/assets/javascripts/vendor/jquery.ui.min.js create mode 100644 app/assets/javascripts/vendor/qtip/jquery.qtip.css create mode 100644 app/assets/javascripts/vendor/qtip/jquery.qtip.js create mode 100644 app/assets/javascripts/vendor/qtip/jquery.qtip.min.css create mode 100644 app/assets/javascripts/vendor/qtip/jquery.qtip.min.js create mode 100644 app/assets/javascripts/vendor/tipsy.min.js create mode 100644 app/assets/javascripts/vendor/tipsy/images/tipsy.gif create mode 100644 app/assets/javascripts/vendor/tipsy/javascripts/jquery.tipsy.js create mode 100644 app/assets/javascripts/vendor/tipsy/javascripts/jquery.tipsy.min.js create mode 100644 app/assets/javascripts/vendor/tipsy/stylesheets/tipsy.css create mode 100644 app/controllers/I18n.scala create mode 100644 app/controllers/User.scala create mode 100644 app/controllers/Wiki.scala create mode 100644 app/i18n/I18nDomain.scala create mode 100644 app/i18n/I18nKeys.scala create mode 100644 app/i18n/I18nPool.scala create mode 100644 app/i18n/I18nRequestHandler.scala create mode 100644 app/i18n/LangList.scala create mode 100644 app/i18n/Translator.scala create mode 100644 app/templating/AssetHelper.scala create mode 100644 app/templating/Environment.scala create mode 100644 app/templating/I18nHelper.scala create mode 100644 app/templating/RequestHelper.scala create mode 100644 app/templating/StringHelper.scala create mode 100644 app/templating/UiHelper.scala create mode 100644 app/ui/Menu.scala create mode 100644 app/views/auth/miniLogin.scala.html create mode 100644 app/views/layout.scala.html create mode 100755 bin/asset-dump create mode 100644 cli/src/main/scala/TransJsDump.scala create mode 100644 conf/messages create mode 100644 conf/messages.af create mode 100644 conf/messages.ar create mode 100644 conf/messages.az create mode 100644 conf/messages.be create mode 100644 conf/messages.bg create mode 100644 conf/messages.bs create mode 100644 conf/messages.ca create mode 100644 conf/messages.cs create mode 100644 conf/messages.cy create mode 100644 conf/messages.da create mode 100644 conf/messages.de create mode 100644 conf/messages.el create mode 100644 conf/messages.eo create mode 100644 conf/messages.es create mode 100644 conf/messages.et create mode 100644 conf/messages.fa create mode 100644 conf/messages.fi create mode 100644 conf/messages.fp create mode 100644 conf/messages.fr create mode 100644 conf/messages.ga create mode 100644 conf/messages.gd create mode 100644 conf/messages.gl create mode 100644 conf/messages.he create mode 100644 conf/messages.hi create mode 100644 conf/messages.hr create mode 100644 conf/messages.hu create mode 100644 conf/messages.hy create mode 100644 conf/messages.id create mode 100644 conf/messages.is create mode 100644 conf/messages.it create mode 100644 conf/messages.ja create mode 100644 conf/messages.ka create mode 100644 conf/messages.lt create mode 100644 conf/messages.lv create mode 100644 conf/messages.mk create mode 100644 conf/messages.mn create mode 100644 conf/messages.mr create mode 100644 conf/messages.nb create mode 100644 conf/messages.nl create mode 100644 conf/messages.nn create mode 100644 conf/messages.no create mode 100644 conf/messages.pl create mode 100644 conf/messages.ps create mode 100644 conf/messages.pt create mode 100644 conf/messages.ro create mode 100644 conf/messages.ru create mode 100644 conf/messages.si create mode 100644 conf/messages.sk create mode 100644 conf/messages.sl create mode 100644 conf/messages.sq create mode 100644 conf/messages.sr create mode 100644 conf/messages.sv create mode 100644 conf/messages.sw create mode 100644 conf/messages.te create mode 100644 conf/messages.th create mode 100644 conf/messages.tk create mode 100644 conf/messages.tp create mode 100644 conf/messages.tr create mode 100644 conf/messages.uk create mode 100644 conf/messages.vi create mode 100644 conf/messages.zh create mode 100644 public/browser.html create mode 100755 public/favicon.ico create mode 100644 public/images/add.png create mode 100644 public/images/balloon.png create mode 100644 public/images/big-right.png create mode 100755 public/images/black_king.png create mode 100644 public/images/browser-chrome.png create mode 100644 public/images/browser-firefox.png create mode 100644 public/images/browser-opera.png create mode 100644 public/images/browser-safari.png create mode 100644 public/images/browsers.png create mode 100644 public/images/browsers.xcf create mode 100644 public/images/buttons.png create mode 100644 public/images/clock.png create mode 100644 public/images/close24.png create mode 100644 public/images/engine_big.png create mode 100644 public/images/engine_small.png create mode 100644 public/images/error.jpg create mode 100644 public/images/exchange.png create mode 100644 public/images/eye.png create mode 100644 public/images/feed-balloon.png create mode 100755 public/images/head_bg.png create mode 100644 public/images/hloader.gif create mode 100755 public/images/interrogation.png create mode 100644 public/images/kb14.png create mode 100644 public/images/kw14.png create mode 100644 public/images/loader2.gif create mode 100644 public/images/opensource.png create mode 100644 public/images/over5.png create mode 100644 public/images/play32.png create mode 100644 public/images/rematch.gif create mode 100644 public/images/s16.png create mode 100644 public/images/sover.png create mode 100644 public/images/sprite.png create mode 100755 public/images/sprite_color.png create mode 100644 public/images/sprite_color_24.png create mode 100644 public/images/sprite_mini.png create mode 100644 public/images/sprite_question.png create mode 100644 public/images/sprite_question.xcf create mode 100644 public/images/system.png create mode 100644 public/images/user.png create mode 100755 public/images/white_king.png create mode 100644 public/javascripts/deps.min.js create mode 100644 public/sound/alert.mp3 create mode 100644 public/sound/alert.ogg create mode 100644 public/stylesheets/analyse.css create mode 100644 public/stylesheets/board.css create mode 100644 public/stylesheets/common.css create mode 100644 public/stylesheets/gamelist.css create mode 100644 public/stylesheets/gamestats.css create mode 100644 public/stylesheets/hook.css create mode 100644 public/stylesheets/jquery-ui.css create mode 100644 public/stylesheets/opening.css create mode 100755 public/stylesheets/reset.css create mode 100644 public/stylesheets/share.css create mode 100644 public/stylesheets/tipsy.css create mode 100644 public/stylesheets/tooltip.css create mode 100644 public/stylesheets/translation.css create mode 100644 public/stylesheets/wiki.css diff --git a/.gitignore b/.gitignore index 260a1b3ac8662..1d228cc1d71f5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ logs project/project project/target +public/trans target RUNNING_PID diff --git a/app/Global.scala b/app/Global.scala index dbf6fbefa0e2b..638706f83d677 100644 --- a/app/Global.scala +++ b/app/Global.scala @@ -14,8 +14,8 @@ object Global extends GlobalSettings { systemEnv = SystemEnv(app) - if (env.isAiServer) println("Running as AI server") - else Cron start env + //if (env.isAiServer) println("Running as AI server") + //else Cron start env } override def onRouteRequest(request: RequestHeader): Option[Handler] = diff --git a/app/SystemEnv.scala b/app/SystemEnv.scala index 9e78705150c80..3e1a1864059ab 100644 --- a/app/SystemEnv.scala +++ b/app/SystemEnv.scala @@ -8,22 +8,37 @@ import akka.actor._ import play.api.libs.concurrent._ import play.api.Application import play.api.i18n.Lang +import play.api.i18n.MessagesPlugin import db._ import ai._ import memo._ import i18n._ +import ui._ final class SystemEnv private (application: Application, settings: Settings) { implicit val app = application import settings._ - - lazy val i18nRequestHandler = new I18nRequestHandler( + + lazy val i18nMessagesApi = app.plugin[MessagesPlugin] + .err("this plugin was not registered or disabled") + .api + + lazy val i18nPool = new I18nPool( langs = Lang.availables.toSet, default = Lang("en")) + lazy val translator = new Translator( + api = i18nMessagesApi, + pool = i18nPool) + + lazy val i18nKeys = new I18nKeys(translator) + + lazy val i18nRequestHandler = new I18nRequestHandler( + pool = i18nPool) + lazy val pgnDump = new PgnDump(userRepo = userRepo, gameRepo = gameRepo) lazy val gameInfo = GameInfo(pgnDump) _ diff --git a/app/assets/javascripts/analyse.js b/app/assets/javascripts/analyse.js new file mode 100644 index 0000000000000..fef3abd7dc94c --- /dev/null +++ b/app/assets/javascripts/analyse.js @@ -0,0 +1,30 @@ +jQuery(function() { + SetImagePath("/vendor/pgn4web/lichess/64"); // use "" path if images are in the same folder as this javascript file + SetImageType("png"); +}); + +function customFunctionOnPgnGameLoad() { + var $text = $('#ShowPgnText'); + var html = ''; + $text.find('span.move').remove(); + $text.find('>span').each(function(it) { + if (0 == it%2) { + html += ''; + } + html += ''; + }); + html += '
' + (it/2+1) + '.' + this.innerHTML + '
'; + $text.html(html).find('tr:empty').remove(); + + $('div.lichess_goodies a.rotate_board').click(function() { + $('#GameBoard').toggleClass('flip'); + $('#player_links div:first').appendTo($('#player_links')); + redrawBoardMarks(); + return false; + }); + redrawBoardMarks(); +} + +function redrawBoardMarks() { + jQuery.displayBoardMarks($('#GameBoard'), ! $('#GameBoard').hasClass('flip')); +} diff --git a/app/assets/javascripts/chart.js b/app/assets/javascripts/chart.js new file mode 100644 index 0000000000000..3dd345c59b007 --- /dev/null +++ b/app/assets/javascripts/chart.js @@ -0,0 +1,13 @@ +if (typeof google.visualization == "undefined" ) { + google.load("visualization", "1", {packages:["corechart"]}); +} + +google.elemToData = function(elem) { + var data = new google.visualization.DataTable(); + $.each($(elem).data('columns'), function() { + data.addColumn(this[0], this[1]); + }); + data.addRows($(elem).data('rows')); + + return data; +} diff --git a/app/assets/javascripts/clock.js b/app/assets/javascripts/clock.js new file mode 100644 index 0000000000000..f4fd3781af611 --- /dev/null +++ b/app/assets/javascripts/clock.js @@ -0,0 +1,64 @@ +$.widget("lichess.clock", { + _create: function() { + var self = this; + this.options.time = parseFloat(this.options.time) * 1000; + $.extend(this.options, { + duration: this.options.time, + state: 'ready' + }); + this.element.addClass('clock_enabled'); + }, +destroy: function() { + this.stop(); + $.Widget.prototype.destroy.apply(this); +}, +start: function() { + var self = this; + self.options.state = 'running'; + self.element.addClass('running'); + var end_time = new Date().getTime() + self.options.time; + self.options.interval = setInterval(function() { + if (self.options.state == 'running') { + var current_time = Math.round(end_time - new Date().getTime()); + if (current_time <= 0) { + clearInterval(self.options.interval); + current_time = 0; + } + + self.options.time = current_time; + self._show(); + + //If the timer completed, fire the buzzer callback + current_time == 0 && $.isFunction(self.options.buzzer) && self.options.buzzer(self.element); + } else { + clearInterval(self.options.interval); + } + }, + 1000); +}, + + setTime: function(time) { + this.options.time = parseFloat(time) * 1000; + this._show(); + }, + + stop: function() { + clearInterval(this.options.interval); + this.options.state = 'stop'; + this.element.removeClass('running'); + }, + + _show: function() { + this.element.text(this._formatDate(new Date(this.options.time))); + }, + + _formatDate: function(date) { + minutes = this._prefixInteger(date.getMinutes(), 2); + seconds = this._prefixInteger(date.getSeconds(), 2); + return minutes + ':' + seconds; + }, + + _prefixInteger: function (num, length) { + return (num / Math.pow(10, length)).toFixed(length).substr(2); + } +}); diff --git a/app/assets/javascripts/ctrl.js b/app/assets/javascripts/ctrl.js new file mode 100644 index 0000000000000..8a3d33e82f4d0 --- /dev/null +++ b/app/assets/javascripts/ctrl.js @@ -0,0 +1,297 @@ +if (typeof console == "undefined" || typeof console.log == "undefined") console = { + log: function() {} +}; + +// declare now, populate later +var lichess_translations = []; + +var lichess = { + socket: null, + socketDefaults: { + params: { + username: $('#username_tag').text() + }, + events: { + n: function(e) { + var $tag = $('#nb_connected_players'); + $tag.html($tag.html().replace(/\d+/, e)).removeClass('none'); + } + }, + options: { + name: "site", + offlineTag: $('#connection_lost') + } + }, + onProduction: /.+\.lichess\.org/.test(document.domain), + socketUrl: document.domain + ":9000" +}; + +$(function() { + + if (!$.websocket.available) { + $.ajax('/assets/browser.html', { success: function(html) { $('body').prepend(html); } }); + } + + // Start game + var $game = $('div.lichess_game').orNot(); + if ($game) { + $game.game(lichess_data); + if (!lichess_data.player.spectator) { + $('a.blank_if_play').click(function() { + if ($game.game('isPlayable')) { + $(this).attr('target', '_blank'); + } + }); + } + } + + setTimeout(function() { + if (lichess.socket == null && $('div.server_error_box').length == 0) { + lichess.socket = new $.websocket(lichess.socketUrl + "/socket", 0, lichess.socketDefaults); + } + }, 2000); + + $('input.lichess_id_input').select(); + + if ($bw = $('div.lichess_board_wrap').orNot()) { + if ($('div.lichess_homepage').length == 0) + $.displayBoardMarks($bw, $('#lichess > div.lichess_player_white').length); + + // board color + var $board = $bw.find('> div.lichess_board'); + var $picker = $('#top a.colorpicker'); + var colors = ['brown', 'grey', 'green', 'blue']; + var color; + function setColor(c) { + color = c; + $picker.add($board).removeClass(colors.join(' ')).addClass(c); + } + setColor($picker.data('color')); + $picker.click(function() { + var c = colors[(colors.indexOf(color) + 1) % colors.length]; + setColor(c); + $.ajax($picker.attr("href"), { + type: 'POST', + data: {color: c} + }); + return false; + }); + } else { + $('#top a.colorpicker').remove(); + } + + $.centerOverboard = function() { + if ($overboard = $('div.lichess_overboard.auto_center').orNot()) { + $overboard.css('top', (238 - $overboard.height() / 2) + 'px').show(); + } + }; + $.centerOverboard(); + + $('div.lichess_language').click(function() { + $(this).toggleClass('toggled'); + }); + + $('.js_email').one('click', function() { + var email = ['thibault.', 'dupl', 'essis@', 'gmail.com'].join(''); + $(this).replaceWith($('').text(email).attr('href', 'mailto:'+email)); + }); + + function loadUserLinks() { + $('a.user_link:not(.qtiped)').each(function() { + var $this = $(this).addClass("qtiped"); + $this.qtip({ + content: { + text: $this.clone(), + ajax: { + loading: true, + url: $this.attr("href").replace(/@/, "preview"), + type: 'GET', + cache: false, + success: function(content, status) { + this.set('content.text', content); + $('body').trigger('lichess.content_loaded'); + } + } + }, + show: { + effect: false, + event: 'click' + }, + hide: { + effect: false, + event: 'mouseleave', + fixed: true, + delay: 0 + }, + position: { + my: 'top left', + at: 'top left', + target: $this, + adjust: { + x: -9, + y: -6 + } + } + }).click(function() { return false; }); + }); + } + loadUserLinks(); + $('body').on('lichess.content_loaded', loadUserLinks); + + function translateTexts() { + $('.trans_me').each(function() { + $(this).removeClass('trans_me').text($.trans($(this).text())); + }); + } + translateTexts(); + $('body').on('lichess.content_loaded', translateTexts); + + $.tipsyfy = function($elem) { + $elem.find('a:not(div.game_list_inner a):not(.notipsy):not(#boardTable a), input, label, div.tipsyme, button').filter('[title]').tipsy({ + fade: true, + html: false, + live: true + }); + }; + $.tipsyfy($('body')); + + if ($autocomplete = $('input.autocomplete').orNot()) { + $autocomplete.autocomplete({ + source: $autocomplete.attr('data-provider'), + minLength: 2, + delay: 100 + }); + } + + $('a.toggle_signin').toggle(function() { + $('#top').find('div.security').addClass('show_signin_form').find('input:first').focus(); + }, + function() { + $('#top').find('div.security').removeClass('show_signin_form'); + }); + + $('#lichess_message input[value=""]:first, #fos_user_registration_form_username').focus(); + + $('#lichess_translation_form_code').change(function() { + if ("0" != $(this).val()) { + location.href = $(this).closest('form').attr('data-change-url').replace(/__/, $(this).val()); + } + }); + + $('#incomplete_translation a.close').one('click', function() { + $(this).parent().remove(); + }); + + $('a.delete, input.delete').click(function() { + return confirm('Delete?'); + }); + $('input.confirm').click(function() { + return confirm('Confirm this action?'); + }); + + var elem = document.createElement('audio'); + var canPlayAudio = !! elem.canPlayType && elem.canPlayType('audio/ogg; codecs="vorbis"'); + + $.playSound = function() { + if (canPlayAudio && 'on' == $('body').attr('data-sound-enabled')) { + var sound = $('#lichess_sound_player').get(0); + sound.play(); + setTimeout(function() { + sound.pause(); + }, + 1000); + } + } + + if (canPlayAudio) { + $('body').append($('$1"); +} diff --git a/app/assets/javascripts/game.js b/app/assets/javascripts/game.js new file mode 100644 index 0000000000000..5b86f57ac09fa --- /dev/null +++ b/app/assets/javascripts/game.js @@ -0,0 +1,637 @@ +$.widget("lichess.game", { + + _init: function() { + var self = this; + self.$board = self.element.find("div.lichess_board"); + self.$table = self.element.find("div.lichess_table_wrap"); + self.$tableInner = self.$table.find("div.table_inner"); + self.$chat = $("div.lichess_chat"); + self.$chatMsgs = self.$chat.find('.lichess_messages'); + self.$nbViewers = $('.nb_viewers'); + self.initialTitle = document.title; + self.hasMovedOnce = false; + self.premove = null; + + if (self.options.game.started) { + self.indicateTurn(); + self.initSquaresAndPieces(); + self.initChat(); + self.initTable(); + self.initClocks(); + if (self.isMyTurn() && self.options.game.turns == 0) { + self.element.one('lichess.audio_ready', function() { + $.playSound(); + }); + } + if (!self.options.game.finished && ! self.options.player.spectator) { + self.blur = 0; + $(window).blur(function() { + self.blur = 1; + }); + } + self.unloaded = false; + $(window).unload(function() { + self.unloaded = true; + }); + if (self.options.game.last_move) { + self.highlightLastMove(self.options.game.last_move); + } + } + + if (!self.options.opponent.ai && !self.options.player.spectator) { + // update document title to show playing state + setTimeout(self.updateTitle = function() { + document.title = (self.isMyTurn() && ! self.options.game.finished) ? document.title = document.title.indexOf('/\\/') == 0 ? '\\/\\ ' + document.title.replace(/\/\\\/ /, '') : '/\\/ ' + document.title.replace(/\\\/\\ /, '') : document.title; + setTimeout(self.updateTitle, 400); + }, + 400); + } + + lichess.socket = new $.websocket( + lichess.socketUrl + "/socket/" + self.options.game.id + "/" + self.options.player.color, self.options.player.version, + $.extend(true, lichess.socketDefaults, { + events: { + message: function(event) { + self.element.queue(function() { + self.appendToChat(event); + self.element.dequeue(); + }); + }, + possible_moves: function(event) { + self.element.queue(function() { + self.options.possible_moves = event; + self.indicateTurn(); + self.element.dequeue(); + }); + }, + move: function(event) { + self.element.queue(function() { + // if a draw was claimable, remove the zone + $('div.lichess_claim_draw_zone').remove(); + self.$board.find("div.lcs.check").removeClass("check"); + self.$board.find("div.droppable-hover").removeClass("droppable-hover"); + // If I made the move, the piece is already moved on the board + if (self.hasMovedOnce && event.color == self.options.player.color) { + self.element.dequeue(); + } else { + self.movePiece(event.from, event.to, function() { + self.element.dequeue(); + }, false); + } + }); + }, + castling: function(event) { + self.element.queue(function() { + $("div#" + event.rook[1], self.$board).append($("div#" + event.rook[0] + " div.lichess_piece.rook", self.$board)); + // if the king is beeing animated, stop it now + if ($king = $('body > div.king').orNot()) $king.stop(true, true); + $("div#" + event.king[1], self.$board).append($("div.lichess_piece.king."+event.color, self.$board)); + self.element.dequeue(); + }); + }, + promotion: function(event) { + self.element.queue(function() { + $("div#" + event.key + " div.lichess_piece").addClass(event.pieceClass).removeClass("pawn"); + self.element.dequeue(); + }); + }, + check: function(event) { + self.element.queue(function() { + $("div#" + event, self.$board).addClass("check"); + self.element.dequeue(); + }); + }, + enpassant: function(event) { + self.element.queue(function() { + self.killPiece($("div#" + event + " div.lichess_piece", self.$board)); + self.element.dequeue(); + }); + }, + redirect: function(event) { + // stop queue propagation here + self.element.queue(function() { + setTimeout(function() { + location.href = event; + }, 400); + }); + }, + reload: function(event) { + // stop queue propagation here + self.element.queue(function() { + setTimeout(function() { + location.reload(); + }, 400); + }); + }, + threefold_repetition: function(event) { + self.element.queue(function() { + self.reloadTable(function() { + self.element.dequeue(); + }); + }); + }, + gone: function(event) { + self.$table.find("div.force_resign_zone").toggle(event); + self.centerTable(); + }, + end: function(event) { + // Game end must be applied firt: no queue + self.options.game.finished = true; + self.$table + .find("div.lichess_table").addClass("finished").end() + .find(".moretime").remove().end() + .find('div.clock').clock('stop'); + self.element.find("div.ui-draggable").draggable("destroy"); + // But enqueue the visible changes + self.element.queue(function() { + self.changeTitle($.trans('Game over')); + self.element.removeClass("my_turn"); + self.reloadTable(function() { + self.reloadPlayers(function() { + self.element.dequeue(); + }); + }); + }); + }, + reload_table: function(event) { + self.element.queue(function() { + self.reloadTable(function() { + self.element.dequeue(); + }); + }); + }, + clock: function(event) { + self.element.queue(function() { + self.updateClocks(event); + self.element.dequeue(); + }); + }, + premove: function(event) { + self.element.queue(function() { + self.applyPremove(); + self.element.dequeue(); + }); + }, + crowd: function(event) { + if (self.$nbViewers.length) { + self.$nbViewers.html(self.$nbViewers.html().replace(/(\d+|-)/, event.watchers)).toggle(event.watchers > 0); + $(["white", "black"]).each(function() { + self.$table.find("div.username." + this).toggleClass("connected", event[this]).toggleClass("offline", !event[this]); + }); + } + }, + state: function(event) { + self.element.queue(function() { + self.options.game.player = event.color; + self.options.game.turns = event.turns; + self.element.dequeue(); + }); + } + }, + params: { + playerId: self.options.player.id + }, + options: { + name: "game" + } + })); + }, + isMyTurn: function() { + return this.options.possible_moves != null; + }, + changeTitle: function(text) { + if (this.options.player.spectator) return; + document.title = text + " - " + this.initialTitle; + }, + indicateTurn: function() { + var self = this; + if (self.options.game.finished) { + self.changeTitle($.trans('Game over')); + } + else if (self.isMyTurn()) { + self.element.addClass("my_turn"); + self.changeTitle($.trans('Your turn')); + } + else { + self.element.removeClass("my_turn"); + self.changeTitle($.trans('Waiting for opponent')); + } + + if (!self.$table.find('>div').hasClass('finished')) { + self.$tableInner.find("div.lichess_current_player div.lichess_player." + (self.isMyTurn() ? self.options.opponent.color: self.options.player.color)).hide(); + self.$tableInner.find("div.lichess_current_player div.lichess_player." + (self.isMyTurn() ? self.options.player.color: self.options.opponent.color)).show(); + } + }, + movePiece: function(from, to, callback, mine) { + var self = this, + $piece = self.$board.find("div#" + from + " div.lichess_piece"), + $from = $("div#" + from, self.$board), + $to = $("div#" + to, self.$board); + + // already moved + if (!$piece.length) { + self.onError(from + " " + to+' empty from square!!', true); + return; + } + + self.highlightLastMove(from + " " + to); + if (!self.isPlayerColor(self.getPieceColor($piece))) { + $.playSound(); + } + + var afterMove = function() { + var $killed = $to.find("div.lichess_piece"); + if ($killed.length && self.getPieceColor($piece) != self.getPieceColor($killed)) { + self.killPiece($killed); + } + $piece.css({top: 0, left: 0}); + $to.append($piece); + $.isFunction(callback || null) && callback(); + }; + + var animD = mine ? 0 : self.options.animation_delay; + + $('body > div.lichess_piece').stop(true, true); + if (animD < 100) { + afterMove(); + } + else { + $("body").append($piece.css({ top: $from.offset().top, left: $from.offset().left })); + $piece.animate({ top: $to.offset().top, left: $to.offset().left }, animD, afterMove); + } + }, + highlightLastMove: function(notation) { + var self = this; + var squareIds = notation.split(" "); + $("div.lcs.moved", self.$board).removeClass("moved"); + $("#" + squareIds[0] + ",#" + squareIds[1], self.$board).addClass("moved"); + + }, + killPiece: function($piece) { + if ($.data($piece, 'draggable')) $piece.draggable("destroy"); + var self = this, + $deads = self.element.find("div.lichess_cemetery." + self.getPieceColor($piece)), + $square = $piece.parent(); + $deads.append($("
").addClass('lichess_tomb')); + var $tomb = $("div.lichess_tomb:last", $deads), + tomb_offset = $tomb.offset(); + $('body').append($piece.css($square.offset())); + $piece.css("opacity", 0.5).animate({ + top: tomb_offset.top, + left: tomb_offset.left + }, + self.options.animation_delay * 2, function() { + $tomb.append($piece.css({ + position: "relative", + top: 0, + left: 0 + })); + }); + }, + possibleMovesContain: function(from, to) { + return this.options.possible_moves != null + && typeof this.options.possible_moves[from] !== 'undefined' + && this.options.possible_moves[from].indexOf(to) != -1; + }, + applyPremove: function() { + var self = this; + if (self.premove && self.isMyTurn()) { + var move = self.premove; + self.unsetPremove(); + if (self.possibleMovesContain(move.from, move.to)) { + var $fromSquare = $("#"+move.from).orNot(); + var $toSquare = $("#"+move.to).orNot(); + var $piece = $fromSquare.find(".lichess_piece").orNot(); + if ($fromSquare && $toSquare && $piece) { + self.dropPiece($piece, $fromSquare, $toSquare, true); + } + } + } + }, + setPremove: function(move) { + var self = this; + if (self.isMyTurn()) return; + self.unsetPremove(); + if (move.from == move.to) return; + self.premove = move; + $("#"+move.from+",#"+move.to).addClass("premoved"); + self.unselect(); + $("#premove").show(); + }, + unsetPremove: function() { + var self = this; + self.premove = null; + self.$board.find('div.lcs.premoved').removeClass('premoved'); + $("#premove").hide(); + }, + unselect: function() { + this.$board.find('> div.selected').removeClass('selected'); + }, + dropPiece: function($piece, $oldSquare, $newSquare, isPremove) { + var self = this, + isPremove = isPremove || false; + squareId = $newSquare.attr('id'), + moveData = { + from: $oldSquare.attr("id"), + to: squareId, + b: self.blur + }; + + if (!self.isMyTurn()) { + return self.setPremove({ from: moveData.from, to: moveData.to }); + } + + self.unselect(); + self.hasMovedOnce = true; + self.blur = 0; + self.options.possible_moves = null; + self.movePiece($oldSquare.attr("id"), squareId, null, true); + + // TODO send moveData here + function sendMoveRequest(moveData) { + lichess.socket.send("move", moveData); + } + + var color = self.options.player.color; + // promotion + if ($piece.hasClass('pawn') && ((color == "white" && squareId[1] == 8) || (color == "black" && squareId[1] == 1))) { + if (isPremove) { + moveData.promotion = "queen"; + sendMoveRequest(moveData); + } else { + var $choices = $('
').appendTo(self.$board).html('\ +
\ +
\ +
\ +
').fadeIn(self.options.animation_delay).find('div.lichess_piece').click(function() { + moveData.promotion = $(this).attr('data-piece'); + sendMoveRequest(moveData); + $choices.fadeOut(self.options.animation_delay, function() { + $choices.remove(); + }); + }).end(); + } + } + else { + sendMoveRequest(moveData); + } + }, + initSquaresAndPieces: function() { + var self = this; + if (self.options.game.finished || self.options.player.spectator) { + return; + } + var draggingKey = null; + var dropped = false; + // init squares + self.$board.find("div.lcs").each(function() { + var squareId = $(this).attr('id'); + $(this).droppable({ + accept: function(draggable) { + if (!self.isMyTurn()) { + return draggingKey != squareId; + } else { + return draggingKey && self.possibleMovesContain(draggingKey, squareId); + } + }, + drop: function(ev, ui) { + self.dropPiece(ui.draggable, ui.draggable.parent(), $(this)); + dropped = true; + }, + hoverClass: 'droppable-hover' + }); + }); + + // init pieces + self.$board.find("div.lichess_piece." + self.options.player.color).each(function() { + var $this = $(this); + $this.draggable({ + containment: self.$board, + helper: function() { return $('
').attr('class', $this.attr('class')).appendTo(self.$board); }, + start: function() { + draggingKey = $this.hide().parent().attr('id'); + dropped = false; + self.unselect(); + }, + stop: function(e, ui) { + draggingKey = null; + var dist = Math.sqrt(Math.pow(ui.originalPosition.top - ui.position.top, 2) + Math.pow(ui.originalPosition.left - ui.position.left, 2)); + if (!dropped && dist <= 32) $this.trigger('click'); + $this.show(); + }, + scroll: false + }); + }); + + /* + * Code for touch screens like android or iphone + */ + + self.$board.find("div.lichess_piece." + self.options.player.color).each(function() { + $(this).click(function() { + self.unsetPremove(); + var $square = $(this).parent(); + if ($square.hasClass('selectable')) return; + var isSelected = $square.hasClass('selected'); + self.unselect(); + if (isSelected) return; + $square.addClass('selected'); + }); + }); + + self.$board.find("div.lcs").each(function() { + var $this = $(this); + $this.hover(function() { + if($selected = self.$board.find('div.lcs.selected').orNot()) { + if (!self.isMyTurn() || self.possibleMovesContain($selected.attr('id'), $this.attr('id'))) { + $this.addClass('selectable'); + } + } + }, + function() { + $this.removeClass('selectable'); + }).click(function() { + self.unsetPremove(); + var $from = self.$board.find('div.lcs.selected').orNot(); + var $to = $this; + if (!$from || $from == $to) return; + var $piece = $from.find('div.lichess_piece'); + if (!self.isMyTurn() && $from) { + self.dropPiece($piece, $from, $to); + } else { + if (!self.possibleMovesContain($from.attr('id'), $this.attr('id'))) return; + if (!$to.hasClass('selectable')) return; + $to.removeClass('selectable'); + self.dropPiece($piece, $from, $this); + } + }); + }); + + /* + * End of code for touch screens + */ + }, + initChat: function() { + var self = this; + if (self.options.player.spectator) { + return; + } + if (self.$chat.length) { + self.$chatMsgs.find('>li').each(function() { $(this).html(urlToLink($(this).html())); }); + self.$chatMsgs.scrollable(); + var $form = self.$chat.find('form'); + self.$chatMsgs[0].scrollTop = 9999999; + var $input = self.$chat.find('input.lichess_say').one("focus", function() { + $input.val('').removeClass('lichess_hint'); + }); + + // send a message + $form.submit(function() { + var text = $.trim($input.val()); + if (!text) return false; + if (text.length > 140) { + alert('Max length: 140 chars. ' + text.length + ' chars used.'); + return false; + } + $input.val(''); + lichess.socket.send('talk', text); + return false; + }); + + self.$chat.find('a.send').click(function() { + $input.trigger('click'); + $form.submit(); + }); + + // toggle the chat + self.$chat.find('input.toggle_chat').change(function() { + self.$chat.toggleClass('hidden', ! $(this).attr('checked')); + }).trigger('change'); + } + }, + appendToChat: function(msg) { + if (this.$chat.length) this.$chatMsgs.append(urlToLink(msg))[0].scrollTop = 9999999; + }, + reloadTable: function(callback) { + var self = this; + self.get(self.options.url.table, { + success: function(html) { + $('body > div.tipsy').remove(); + self.$tableInner.html(html); + self.initTable(); + $.isFunction(callback) && callback(); + $('body').trigger('lichess.content_loaded'); + } + }, false); + }, + reloadPlayers: function(callback) { + var self = this; + $.getJSON(self.options.url.players, function(data) { + $(['white', 'black']).each(function() { + if (data[this]) self.$table.find('div.username.' + this).html(data[this]); + }); + if (data.me) $('#user_tag span').text(data.me); + $('body').trigger('lichess.content_loaded'); + $.isFunction(callback) && callback(); + }); + }, + initTable: function() { + var self = this; + self.centerTable(); + self.$table.find('a, input, label').tipsy({ + fade: true + }); + self.$table.find('a.lichess_play_again_decline').one('click', function() { + $(this).parent().remove(); + }); + self.$table.find('a.lichess_rematch, a.lichess_rematch_cancel, a.lichess_rematch_decline').click(function() { + self.post($(this).attr('href'), {}, true); + if ($(this).is('.lichess_play_again_join a')) { + $(this).parent().remove(); + } + return false; + }); + self.$table.find('a.moretime').click(function() { + lichess.socket.send("moretime"); + return false; + }); + }, + centerTable: function() { + this.$table.css('top', (256 - this.$table.height() / 2) + 'px'); + }, + initClocks: function() { + var self = this; + if (!self.canRunClock()) return; + self.$table.find('div.clock').each(function() { + $(this).clock({ + time: $(this).attr('data-time'), + buzzer: function() { + if (!self.options.game.finished && ! self.options.player.spectator) { + lichess.socket.send("outoftime"); + } + } + }); + }); + self.updateClocks(); + }, + updateClocks: function(times) { + var self = this; + if (!self.canRunClock()) return; + if (times || false) { + for (color in times) { + self.$table.find('div.clock_' + color).clock('setTime', times[color]); + } + } + self.$table.find('div.clock').clock('stop'); + if (self.options.game.turns > 0) { + self.$table.find('div.clock_' + self.options.game.player).clock('start'); + } + }, + canRunClock: function() { + return this.options.game.clock && this.options.game.started && ! this.options.game.finished; + }, + getPieceColor: function($piece) { + return $piece.hasClass('white') ? 'white': 'black'; + }, + isPlayerColor: function(color) { + return !this.options.player.spectator && this.options.player.color == color; + }, + get: function(url, options, reloadIfFail) { + var self = this; + options = $.extend({ + type: 'GET', + timeout: 8000, + cache: false + }, + options || {}); + $.ajax(url, options).complete(function(x, s) { + self.onXhrComplete(x, s, null, reloadIfFail); + }); + }, + post: function(url, options, reloadIfFail) { + var self = this; + options = $.extend({ + type: 'POST', + timeout: 8000 + }, + options || {}); + $.ajax(url, options).complete(function(x, s) { + self.onXhrComplete(x, s, 'ok', reloadIfFail); + }); + }, + onXhrComplete: function(xhr, status, expectation, reloadIfFail) { + if (status != 'success') { + this.onError('status is not success: '+status, reloadIfFail); + } + if ((expectation || false) && expectation != xhr.responseText) { + this.onError('expectation failed: '+xhr.responseText, reloadIfFail); + } + }, + onError: function(error, reloadIfFail) { + var self = this; + if (reloadIfFail) { + location.reload(); + //console.debug(error) + } + } +}); diff --git a/app/assets/javascripts/gamelist.js b/app/assets/javascripts/gamelist.js new file mode 100644 index 0000000000000..cbec7254b163e --- /dev/null +++ b/app/assets/javascripts/gamelist.js @@ -0,0 +1,74 @@ +$(function() { + if ($gamelist = $('div.game_list').orNot()) { + refreshUrl = $gamelist.attr('data-url'); + // Update games + function reloadGameList() { + setTimeout(function() { + $.get(refreshUrl, function(html) { + $gamelist.html(html); + $('body').trigger('lichess.content_loaded'); + reloadGameList(); + }); + }, + 2100); + }; + reloadGameList(); + } + + function parseFen() { + $('.parse_fen').each(function() { + var withKeys = $(this).hasClass('with_keys'); + var letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']; + var fen = $(this).data('fen').replace(/\//g, ''); + var x, y, html = '', scolor, pcolor, pclass, c, d, increment; + var pclasses = {'p':'pawn', 'r':'rook', 'n':'knight', 'b':'bishop', 'q':'queen', 'k':'king'}; + var pregex = /(p|r|n|b|q|k)/; + + if ('white' == $(this).data('color')) { + var x = 8, y = 1; + var increment = function() { y++; if(y > 8) { y = 1; x--; } }; + } else { + var x = 1, y = 8; + var increment = function() { y--; if(y < 1) { y = 8; x++; } }; + } + function openSquare(x, y) { + var scolor = (x+y)%2 ? 'white' : 'black'; + var html = '
'; + } + function closeSquare() { + return '
'; + } + + for(var fenIndex in fen) { + c = fen[fenIndex]; + html += openSquare(x, y); + if (!isNaN(c)) { // it is numeric + html += closeSquare(); + increment(); + for (d=1; d
'; + html += closeSquare(); + increment(); + } + } + + $(this).html(html).removeClass('parse_fen'); + // attempt to free memory + html = pclasses = increment = pregex = fen = 0; + }); + } + parseFen(); + + $('body').on('lichess.content_loaded', parseFen); +}); diff --git a/app/assets/javascripts/gamestats.js b/app/assets/javascripts/gamestats.js new file mode 100644 index 0000000000000..d66ef5ba0173f --- /dev/null +++ b/app/assets/javascripts/gamestats.js @@ -0,0 +1,25 @@ +google.setOnLoadCallback(function() { + + $('div.move-time').each(function() { + var data = google.elemToData(this); + var chart = new google.visualization.AreaChart(this); + chart.draw(data, { + width: 747, + height: 400, + title: $(this).data('title'), + chartArea:{left:"5%",top:"5%",width:"78%",height:"90%"} + }); + }); + + $('div.move-time-distribution').each(function() { + var data = google.elemToData(this); + var chart = new google.visualization.PieChart(this); + chart.draw(data, { + width: 747, + height: 300, + title: $(this).data('title'), + chartArea:{left:"0%",top:"8%",width:"100%",height:"92%"}, + is3D: false + }); + }); +}); diff --git a/app/assets/javascripts/hook.js b/app/assets/javascripts/hook.js new file mode 100644 index 0000000000000..515d1085f99cd --- /dev/null +++ b/app/assets/javascripts/hook.js @@ -0,0 +1,204 @@ +$(function() { + + var $wrap = $('div.hooks_wrap'); + if (!$wrap.length) return; + if (!$.websocket.available) return; + + var $chat = $("div.lichess_chat"); + var chatExists = $chat.length > 0; + var $bot = $("div.lichess_bot"); + var $newposts = $("div.new_posts"); + var $newpostsinner = $newposts.find('.undertable_inner'); + var $hooks = $wrap.find('div.hooks'); + var $hooksTable = $hooks.find("table"); + var actionUrls = { + 'cancel': $hooks.data('cancel-url'), + 'join': $hooks.data('join-url') + }; + var $userTag = $('#user_tag'); + var isRegistered = $userTag.length > 0 + var myElo = isRegistered ? parseInt($userTag.data('elo')) : null; + var username = isRegistered ? $('#username_tag').text() : "Anonymous"; + var hookOwnerId = $hooks.data('my-hook'); + + if (chatExists) { + var $form = $chat.find('form'); + $chat.find('.lichess_messages').scrollable(); + var $input = $chat.find('input.lichess_say').one("focus", function() { + $input.val('').removeClass('lichess_hint'); + }); + + // send a message + $form.submit(function() { + if ($input.hasClass("lichess_hint")) return false; + var text = $.trim($input.val()); + if (!text) return false; + if (text.length > 140) { + alert('Max length: 140 chars. ' + text.length + ' chars used.'); + return false; + } + $input.val(''); + lichess.socket.send('talk', { u: username, txt: text }); + return false; + }); + $chat.find('a.send').click(function() { $input.trigger('click'); $form.submit(); }); + + // toggle the chat + $chat.find('input.toggle_chat').change(function() { + $chat.toggleClass('hidden', ! $(this).attr('checked')); + }).trigger('change'); + } + + function addToChat(html) { + $chat.find('.lichess_messages').append(html)[0].scrollTop = 9999999; + $('body').trigger('lichess.content_loaded'); + } + function buildChatMessage(txt, username) { + var html = '
  • ' + html += ''+username.substr(0, 12) + ''; + html += '' + urlToLink(txt) + '
  • '; + return html; + } + + $bot.on("click", "tr", function() { location.href = $(this).find('a.watch').attr("href"); }); + $bot.find('.undertable_inner').scrollable(); + $newpostsinner.scrollable(); + $newpostsinner[0].scrollTop = 9999999; + $newpostsinner.scrollable(); + setInterval(function() { + $.ajax($newposts.data('url'), { + timeout: 10000, + success: function(data) { + $newpostsinner.find('ol').html(data); + $newpostsinner[0].scrollTop = 9999999; + $('body').trigger('lichess.content_loaded'); + } + }); + }, 60 * 1000); + + var $preload = $("textarea.hooks_preload"); + var preloadData = $.parseJSON($preload.val()); + $preload.remove(); + if (preloadData.redirect) { + location.href = preloadData.redirect; + } else { + addHooks(preloadData.pool); + renderTimeline(preloadData.timeline); + if (chatExists) { + var chatHtml = ""; + $.each(preloadData.chat, function() { + if (this.txt) chatHtml += buildChatMessage(this.txt, this.u); + }); + addToChat(chatHtml); + } + lichess.socket = new $.websocket(lichess.socketUrl + "/lobby/socket", preloadData.version, $.extend(true, lichess.socketDefaults, { + params: { + hook: hookOwnerId + }, + events: { + talk: function(e) { if (chatExists && e.txt) addToChat(buildChatMessage(e.txt, e.u)); }, + entry: function(e) { renderTimeline([e]); }, + hook_add: addHook, + hook_remove: removeHook, + redirect: function(e) { + $.lichessOpeningPreventClicks(); + location.href = 'http://'+location.hostname+'/'+e; + } + }, + options: { + name: "lobby" + } + })); + } + $('body').trigger('lichess.content_loaded'); + + function renderTimeline(data) { + var html = ""; + for (i in data) { html += '' + data[i] + ''; } + $bot.find('.lichess_messages').append(html).parent()[0].scrollTop = 9999999; + $('body').trigger('lichess.content_loaded'); + } + + function removeHook(id) { + $("#" + id).find('td.action').addClass('empty').html("").end().fadeOut(500, function() { + $(this).remove(); + updateHookTable(); + }); + } + function addHooks(hooks) { + var html = ""; + for (i in hooks) html += renderHook(hooks[i]); + $hooksTable.append(html); + updateHookTable(); + } + function addHook(hook) { + $hooksTable.append(renderHook(hook)); + updateHookTable(); + } + function updateHookTable() { + if (0 == $hooksTable.find('tr.hook').length) { + $hooksTable.addClass('empty_table').html(''+$.trans("No game available right now, create one!")+''); + } else { + $hooksTable.removeClass('empty_table').find('tr.create_game').remove(); + } + resizeLobby(); + $hooksTable.find('a.join').click($.lichessOpeningPreventClicks); + } + + function renderHook(hook) { + if (!isRegistered && hook.mode == "Rated") return ""; + var html = "", isEngine, engineMark, userClass, mode, eloRestriction; + hook.action = hook.ownerId ? "cancel" : "join"; + html += ''; + html += ''; + isEngine = hook.engine && hook.action == 'join'; + engineMark = isEngine ? '' : ''; + userClass = isEngine ? "user_link engine" : "user_link"; + if (hook.elo) { + html += ''+hook.username.substr(0, 12)+'
    '+'('+hook.elo+')'+engineMark+'
    '; + } else { + html += ''+hook.username+''; + } + html += ''; + eloRestriction = false; + if (isRegistered) { + mode = $.trans(hook.mode); + if (hook.emin) { + if (hook.action == "join" && (myElo < parseInt(hook.emin) || myElo > parseInt(hook.emax))) { + eloRestriction = true; + } + if (hook.emin > 700 || hook.emax < 2200) { + mode += "" + hook.emin + ' - ' + hook.emax + ''; + } + } + } else { + mode = ""; + } + if (hook.variant == 'Chess960') { + html += '960 ' + mode + ''; + } else { + html += ''+mode+''; + } + html += ''+$.trans(hook.clock)+''; + if (eloRestriction) { + html += ''; + } else { + html += ''; + if (hook.action == "cancel") { + html += ''; + } else { + var cancelParam = hookOwnerId ? "?cancel=" + hookOwnerId : "" + html += ''; + } + } + return html; + } + + function resizeLobby() { + $wrap.toggleClass("large", $hooks.find("tr").length > 6); + } + + $hooks.on('click', 'table.empty_table tr', function() { + $('#start_buttons a.config_hook').click(); + }); +}); diff --git a/app/assets/javascripts/infinitescroll.js b/app/assets/javascripts/infinitescroll.js new file mode 100644 index 0000000000000..bc5cee258ba70 --- /dev/null +++ b/app/assets/javascripts/infinitescroll.js @@ -0,0 +1,13 @@ +$(function() { + $('div.infinitescroll').each(function() { + $(this).infinitescroll({ + navSelector: "div.pager", + nextSelector: "div.pager a:last", + itemSelector: "div.infinitescroll .paginated_element", + loadingText: "", + donetext: "---" + }, function() { + $('body').trigger('lichess.content_loaded'); + }).find('div.pager').hide(); + }); +}); diff --git a/app/assets/javascripts/main.js b/app/assets/javascripts/main.js new file mode 100644 index 0000000000000..4bee5b2989082 --- /dev/null +++ b/app/assets/javascripts/main.js @@ -0,0 +1,9 @@ +require("socket"); +require("ctrl"); +require("game"); +require("gamelist"); +require("clock"); +require("opening"); +require("hook"); + +console.debug("test"); diff --git a/app/assets/javascripts/opening.js b/app/assets/javascripts/opening.js new file mode 100644 index 0000000000000..a3347d0a4c986 --- /dev/null +++ b/app/assets/javascripts/opening.js @@ -0,0 +1,99 @@ +$(function() { + + var $startButtons = $('#start_buttons'); + if (!$startButtons.length) { + return; + } + + if (!$.websocket.available) { + $('#start_buttons a').attr('href', '#'); + return; + } + + function prepareForm() { + var $form = $('div.lichess_overboard'); + $form.find('div.buttons').buttonset().disableSelection(); + $form.find('button.submit').button().disableSelection(); + $form.find('.time_choice input, .increment_choice input').each(function() { + var $input = $(this), $value = $input.parent().find('span'); + $input.hide().after($('
    ').slider({ + value: $input.val(), + min: $input.data('min'), + max: $input.data('max'), + range: 'min', + step: 1, + slide: function( event, ui ) { + $value.text(ui.value); + $input.attr('value', ui.value); + $form.find('.color_submits button').toggle( + $form.find('.time_choice input').val() > 0 || $form.find('.increment_choice input').val() > 0 + ); + } + })); + }); + $form.find('.elo_range').each(function() { + var $this = $(this); + var $input = $this.find("input"); + var $span = $this.parent().find("span.range"); + var min = $input.data("min"); + var max = $input.data("max"); + if ($input.val()) { + var values = $input.val().split("-"); + } else { + var values = [min, max]; + } + $span.text(values.join(' - ')); + $this.slider({ + range: true, + min: min, + max: max, + values: values, + step: 50, + slide: function( event, ui ) { + $input.val(ui.values[0] + "-" + ui.values[1]); + $span.text(ui.values[0] + " - " + ui.values[1]); + } + }); + var $eloRangeConfig = $this.parent(); + var $modeChoices = $form.find('.mode_choice input'); + $modeChoices.on('change', function() { + $eloRangeConfig.toggle($modeChoices.eq(1).attr('checked') == 'checked'); + $.centerOverboard(); + }).trigger('change'); + }); + $form.find('.clock_choice input').on('change', function() { + $form.find('.time_choice, .increment_choice').toggle($(this).is(':checked')); + $.centerOverboard(); + }).trigger('change'); + var $eloRangeConfig = $form.find('.elo_range_config'); + $form.prepend($('').click(function() { + $form.remove(); + $startButtons.find('a.active').removeClass('active'); + })); + } + + $startButtons.find('a').click(function() { + $startButtons.find('a.active').removeClass('active'); + $(this).addClass('active'); + $('div.lichess_overboard').remove(); + $.ajax({ + url: $(this).attr('href'), + success: function(html) { + $('div.lichess_overboard').remove(); + $('div.lichess_board_wrap').prepend(html); + prepareForm(); + $.centerOverboard(); + } + }); + return false; + }); + $('#lichess').on('submit', 'form', $.lichessOpeningPreventClicks); + + if (window.location.hash) { + $startButtons.find('a.config_'+window.location.hash.replace(/#/, '')).click(); + } +}); + +$.lichessOpeningPreventClicks = function() { + $('div.lichess_overboard, div.hooks_wrap').hide(); +}; diff --git a/app/assets/javascripts/socket.js b/app/assets/javascripts/socket.js new file mode 100644 index 0000000000000..00ef916691716 --- /dev/null +++ b/app/assets/javascripts/socket.js @@ -0,0 +1,104 @@ +$.websocket = function(url, version, settings) { + this.settings = { + open: function(){}, + close: function(){}, + message: function(m){}, + events: {}, + params: { + uid: Math.random().toString(36).substring(5) + }, + options: { + name: "unnamed", + debug: true, + offlineDelay: 5000, + offlineTag: false, + pingData: JSON.stringify({t: "p"}), + pingTimeout: 5000, + pingDelay: 2500 + } + }; + $.extend(true, this.settings, settings); + this.url = url; + this.version = version; + this.options = this.settings.options; + this.ws = null; + this.fullUrl = null; + this.offlineTimeout = null; + this.pingTimeout = null; + this.connect(); + $(window).unload(this._destroy); +} +$.websocket.available = window.WebSocket || window.MozWebSocket; +$.websocket.prototype = { + connect: function() { var self = this; + self._destroy(); + self.fullUrl = "ws://" + self.url + "?" + $.param($.extend(self.settings.params, { version: self.version })); + self._debug("connection attempt to " + self.fullUrl); + if (window.MozWebSocket) self.ws = new MozWebSocket(self.fullUrl); + else if (window.WebSocket) self.ws = new WebSocket(self.fullUrl); + else self.ws = { + send: function(m){ return false }, + close: function(){} + }; + $(self.ws) + .bind('open', function() { + self._debug("connected to " + self.fullUrl); + if (self.offlineTimeout) clearTimeout(self.offlineTimeout); + if (self.options.offlineTag) self.options.offlineTag.hide(); + self.settings.open(); + }) + .bind('close', function() { + self._debug("disconnected"); + if (self.options.offlineDelay && !self.offlineTimeout) self.offlineTimeout = setTimeout(function() { + if (self.options.offlineTag) self.options.offlineTag.show(); + }, self.options.offlineDelay); + self.settings.close(); + }) + .bind('message', function(e){ + var m = JSON.parse(e.originalEvent.data); + self._debug(m); + if (m.t == "n") { + self.keepAlive(); + } + if (m.t == "batch") { + $(m.d || []).each(function() { self._handle(this); }); + } else { + self._handle(m); + } + }); + self.keepAlive(); + }, + keepAlive: function() { + var self = this; + clearTimeout(self.pingTimeout); + setTimeout(function() { + try { + self.ws.send(self.options.pingData); + self.pingTimeout = setTimeout(function() { + self._debug("reconnect!"); + self.connect(); + }, self.options.pingTimeout); + } catch (e) { + self._debug(e); + self.connect(); + } + }, self.options.pingDelay); + }, + send: function(t, d) { + var data = d || {}; + this._debug({t: t, d: data}); + return this.ws.send(JSON.stringify({t: t, d: data})); + }, + disconnect: function() { + this.ws.close(); + }, + _handle: function(m) { var self = this; + if (m.v) self.version = m.v; + var h = self.settings.events[m.t]; + if ($.isFunction(h)) h(m.d || null); + else self._debug(m.t + " not supported"); + self.settings.message(m); + }, + _debug: function(msg) { if (this.options.debug) console.debug("[" + this.options.name + "]", msg); }, + _destroy: function() { if (this.ws) { this.disconnect(); this.ws = null; } } +} diff --git a/app/assets/javascripts/translation.js b/app/assets/javascripts/translation.js new file mode 100644 index 0000000000000..aab691e7c2add --- /dev/null +++ b/app/assets/javascripts/translation.js @@ -0,0 +1,16 @@ +$(function() { + $('div.messages div.message').each(function() { + if (!$(this).find('input').val()) { + $(this).addClass('missing'); + } + }); + $('div.locale_menu a').click(function() { + $(this).parent().find('a').removeClass('active'); + $(this).addClass('active'); + $('div.messages div.message').show(); + if ($(this).hasClass('missing')) { + $('div.messages div.message').not('.missing').hide(); + } + }); +}); + diff --git a/app/assets/javascripts/vendor/google.corechart.min.js b/app/assets/javascripts/vendor/google.corechart.min.js new file mode 100644 index 0000000000000..a93941081153d --- /dev/null +++ b/app/assets/javascripts/vendor/google.corechart.min.js @@ -0,0 +1,773 @@ +(function() { +/** + * SWFObject v1.4.2: Flash Player detection and embed - http://blog.deconcept.com/swfobject/ + * + * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + * **SWFObject is the SWF embed script formerly known as FlashObject. The name was changed for + * legal reasons. + */ +if(typeof deconcept=="undefined"){var deconcept=new Object();} +if(typeof deconcept.util=="undefined"){deconcept.util=new Object();} +if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();} +deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a,_b){ +if(!document.getElementById){return;} +this.DETECT_KEY=_b?_b:"detectflash"; +this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY); +this.params=new Object(); +this.variables=new Object(); +this.attributes=new Array(); +if(_1){this.setAttribute("swf",_1);} +if(id){this.setAttribute("id",id);} +if(w){this.setAttribute("width",w);} +if(h){this.setAttribute("height",h);} +if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));} +this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion(); +if(c){this.addParam("bgcolor",c);} +var q=_8?_8:"high"; +this.addParam("quality",q); +this.setAttribute("useExpressInstall",_7); +this.setAttribute("doExpressInstall",false); +var _d=(_9)?_9:window.location; +this.setAttribute("xiRedirectUrl",_d); +this.setAttribute("redirectUrl",""); +if(_a){this.setAttribute("redirectUrl",_a);}}; +deconcept.SWFObject.prototype={setAttribute:function(_e,_f){ +this.attributes[_e]=_f; +},getAttribute:function(_10){ +return this.attributes[_10]; +},addParam:function(_11,_12){ +this.params[_11]=_12; +},getParams:function(){ +return this.params; +},addVariable:function(_13,_14){ +this.variables[_13]=_14; +},getVariable:function(_15){ +return this.variables[_15]; +},getVariables:function(){ +return this.variables; +},getVariablePairs:function(){ +var _16=new Array(); +var key; +var _18=this.getVariables(); +for(key in _18){_16.push(key+"="+_18[key]);} +return _16; +},getSWFHTML:function(){ +var _19=""; +if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){ +if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");} +_19="0){_19+="flashvars=\""+_1c+"\"";} +_19+="/>"; +}else{if(this.getAttribute("doExpressInstall")){ +this.addVariable("MMplayerType","ActiveX");} +_19=""; +_19+=""; +var _1d=this.getParams(); +for(var key in _1d){_19+="";} +var _1f=this.getVariablePairs().join("&"); +if(_1f.length>0){_19+="";} +_19+="";} +return _19; +},write:function(_20){ +if(this.getAttribute("useExpressInstall")){ +var _21=new deconcept.PlayerVersion([6,0,65]); +if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){ +this.setAttribute("doExpressInstall",true); +this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl"))); +document.title=document.title.slice(0,47)+" - Flash Player Installation"; +this.addVariable("MMdoctitle",document.title);}} +if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){ +var n=(typeof _20=="string")?document.getElementById(_20):_20; +n.innerHTML=this.getSWFHTML(); +return true; +}else{ +if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}} +return false;}}; +deconcept.SWFObjectUtil.getPlayerVersion=function(){ +var _23=new deconcept.PlayerVersion([0,0,0]); +if(navigator.plugins&&navigator.mimeTypes.length){ +var x=navigator.plugins["Shockwave Flash"]; +if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));} +}else{ +try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");} +catch(e){try{ +var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); +_23=new deconcept.PlayerVersion([6,0,21]); +axo.AllowScriptAccess="always";} +catch(e){ +if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");} +catch(e){}} +if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}} +return _23;}; +deconcept.PlayerVersion=function(_27){ +this.major=_27[0]!=null?parseInt(_27[0],10):0; +this.minor=_27[1]!=null?parseInt(_27[1],10):0; +this.rev=_27[2]!=null?parseInt(_27[2],10):0; +}; +deconcept.PlayerVersion.prototype.versionIsValid=function(fv){ +if(this.majorfv.major){return true;} +if(this.minorfv.minor){return true;} +if(this.rev",Pd=" ",Qd=" [",Rd=" is duplicate in sortColumns.",Sd=' name="',Td=' type="',Ud='"',Vd='" />',Wd='" src="http://www.google.com/ig/ifr?url=',Xd='">\n',Yd="#",Zd="#$1$1$2$2$3$3",$d="#fff",ae="$1",be="%",ce="%22",de="%27",ee="&",fe="&",ge=">",he="<",ie=""",je="&requireauth=1&",ke="&up_",le="&up__table_query_url=",me="'",ne="''",oe="').send(\n function(response) {\n new ",pe="']});\n\n function drawVisualization() {\n new google.visualization.Query('", +qe="(",re='(\n document.getElementById(\'visualization\')).\n draw(response.getDataTable(), null);\n });\n }\n\n google.setOnLoadCallback(drawVisualization);\n <\/script>\n \n \n
    \n \n',se="(\\d*)(\\D*)",te=")",ue="*",ve="+",we=",",xe=", ",ye="-",ze="-active",Ae="-bg",Be="-buttons",Ce="-caption",De="-checkbox",Ee="-checked",Fe="-content",Ge="-default",He="-disabled",Ie="-dropdown", +Je="-focused",Ke="-highlight",Le="-horizontal",Me="-hover",Ne="-inner-box",Oe="-open",Pe="-outer-box",Qe="-rtl",Re="-selected",Te="-title",Ue="-title-close",Ve="-title-draggable",We="-title-text",Xe="-vertical",Ye=".",Ze="..",$e="./",af='.png" height="12" width="',bf="/",cf="/.",df="//",ef="/chart.html",ff="/chart.js",gf="/static/modules/gviz/",hf="/tq",jf="/util/bar_",kf="/util/util.css",lf="0",mf="0.5",nf="0.6",of="00",pf="000",qf="0000000000000000",rf="1",sf="1.0",tf="1.9",uf="5.7",vf="500",wf= +"525",xf="528",yf="7",zf="9",Af=":",Bf=";",Cf=";sig:",Df=";type:",Ef="<",Ff="\u00a0",Gf='\n \n Google Visualization API\n """ + .format(routes.Assets.at("javascripts/" + name)) + } +} diff --git a/app/templating/Environment.scala b/app/templating/Environment.scala new file mode 100644 index 0000000000000..b4c91afafc53b --- /dev/null +++ b/app/templating/Environment.scala @@ -0,0 +1,19 @@ +package lila +package templating + +import model.User + +import play.api.mvc.RequestHeader + +object Environment + extends scalaz.Identitys + with StringHelper + with AssetHelper + with I18nHelper + with UiHelper + with RequestHelper { + + type Me = Option[User] + + type Req = RequestHeader +} diff --git a/app/templating/I18nHelper.scala b/app/templating/I18nHelper.scala new file mode 100644 index 0000000000000..ace10b37ee04f --- /dev/null +++ b/app/templating/I18nHelper.scala @@ -0,0 +1,33 @@ +package lila +package templating + +import controllers._ +import i18n.{ LangList, I18nDomain } +import Global.env // OMG + +import play.api.i18n.Lang +import play.api.templates.Html +import play.api.mvc.RequestHeader + +trait I18nHelper { + + private val pool = env.i18nPool + + val trans = env.i18nKeys + + implicit def lang(implicit req: RequestHeader) = pool lang req + + def langName(lang: Lang) = LangList name lang.language + + def langUrl(lang: Lang)(implicit req: RequestHeader) = + (I18nDomain(req.domain) withLang lang).domain + req.uri + + def otherLangLinks(lang: Lang)(implicit req: RequestHeader) = Html { + val url = langUrl(Lang("xx")) + pool.names collect { + case (code, name) if code != lang.language => + """
  • %s
  • """ + .format(code, url.replace("xx", code), name) + } mkString + } +} diff --git a/app/templating/RequestHelper.scala b/app/templating/RequestHelper.scala new file mode 100644 index 0000000000000..b54225afb14bd --- /dev/null +++ b/app/templating/RequestHelper.scala @@ -0,0 +1,9 @@ +package lila +package templating + +import play.api.mvc.RequestHeader + +trait RequestHelper { + + def currentUrl(implicit req: RequestHeader) = req.domain + req.uri +} diff --git a/app/templating/StringHelper.scala b/app/templating/StringHelper.scala new file mode 100644 index 0000000000000..e2aa4a82c5a0d --- /dev/null +++ b/app/templating/StringHelper.scala @@ -0,0 +1,28 @@ +package lila +package templating + +import scala.math._ +import java.text.SimpleDateFormat +import java.text.Normalizer +import java.util.Date +//import net.sf.jfuzzydate.{FuzzyDateFormat, FuzzyDateFormatter} + +object StringHelper extends StringHelper + +trait StringHelper { + + def slugify(input: String) = { + val nowhitespace = input.replace(" ", "-") + val normalized = Normalizer.normalize(nowhitespace, Normalizer.Form.NFD) + val slug = """[^\w-]""".r.replaceAllIn(normalized, "") + slug.toLowerCase + } + + //def formatDate(date: Time) = date format "dd MMMM yyy" + + //def formatDistance(date: Date) = fuzzyFormatter formatDistance date + + //private val fuzzyFormatter = FuzzyDateFormat.getInstance + + def pluralize(s: String, n: Int) = "%d %s%s".format(n, s, if (n > 1) "s" else "") +} diff --git a/app/templating/UiHelper.scala b/app/templating/UiHelper.scala new file mode 100644 index 0000000000000..773d91a29932c --- /dev/null +++ b/app/templating/UiHelper.scala @@ -0,0 +1,17 @@ +package lila +package templating + +import ui.Menu +import i18n.I18nKeys + +import play.api.templates.Html +import play.api.mvc.RequestHeader + +trait UiHelper { + + val trans: I18nKeys + + def menu(active: Option[Menu.Elem])(implicit req: RequestHeader) = Html { + Menu.render(active)(trans) + } +} diff --git a/app/ui/Menu.scala b/app/ui/Menu.scala new file mode 100644 index 0000000000000..2ab5df06aaa85 --- /dev/null +++ b/app/ui/Menu.scala @@ -0,0 +1,32 @@ +package lila +package ui + +//import Global.env // OMG +import i18n.I18nKeys +import controllers.routes + +import play.api.mvc.Call +import play.api.mvc.RequestHeader + +object Menu { + + sealed abstract class Elem( + val route: Call, + val i18nKey: I18nKeys ⇒ I18nKeys#Key) + + object Play extends Elem(routes.Main.home, _.play) + object Game extends Elem(routes.Main.home, _.games) + object User extends Elem(routes.Main.home, _.people) + object Forum extends Elem(routes.Main.home, _.forum) + object Inbox extends Elem(routes.Main.home, _.inbox) + + val all = List(Play, Game, User, Forum) + + def render(active: Option[Elem])(i18n: I18nKeys)(implicit req: RequestHeader) = + all map { elem ⇒ + """%s""".format( + if (Some(elem) == active) " current" else "", + elem.route.toString, + elem.i18nKey(i18n)()) + } mkString +} diff --git a/app/views/auth/miniLogin.scala.html b/app/views/auth/miniLogin.scala.html new file mode 100644 index 0000000000000..6ef605c9ccd85 --- /dev/null +++ b/app/views/auth/miniLogin.scala.html @@ -0,0 +1,17 @@ +@()(implicit me: Option[User], r: RequestHeader) + + + diff --git a/app/views/home.scala.html b/app/views/home.scala.html index 93e82a2ced5b2..a8bf4d55d3db8 100644 --- a/app/views/home.scala.html +++ b/app/views/home.scala.html @@ -1,8 +1,8 @@ -@()(implicit me: Option[User], r: RequestHeader) +@()(implicit me: Me, r: Req) -@layout("Home") { - -Home +@baseline = { +@trans.freeOnlineChess() +} -@trans("elo.range") +@layout(baseline = baseline.some, active = Some(Menu.Play)) { } diff --git a/app/views/layout.scala.html b/app/views/layout.scala.html new file mode 100644 index 0000000000000..533a762c30306 --- /dev/null +++ b/app/views/layout.scala.html @@ -0,0 +1,93 @@ +@(title: String = "", active: Option[Menu.Elem] = None, baseline: Option[Html] = None, goodies: Option[Html] = None, chat: Option[Html] = None)(body: Html)(implicit me: Me, r: Req) + + + + + lichess @title | @trans.freeOnlineChess() + @cssTag("reset.css") + @cssTag("tipsy.css") + @cssTag("jquery-ui.css") + @cssTag("common.css") + @cssTag("board.css") + @cssTag("gamelist.css") + @cssTag("share.css") + @cssTag("tooltip.css") + @cssTag("opening.css") + @cssTag("hook.css") + + + + + + +
    @trans.freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents()
    +
    + + + +
    + + @langName(lang) + + +
    + @trans.color() + @menu(active) +
    + @trans.nbConnectedPlayers("0") +
    + @me.map { m => + + + @m.usernameWithElo + @m.username + + }.getOrElse { @auth.miniLogin() } +
    +
    +
    +

    + + lichess.org + + @baseline +

    + @goodies.map { g => +
    @g
    + } + @chat.map { c => +
    @c
    + } +
    +
    + @body +
    +
    + + + @jsTag("deps.min.js") + @jsTag("main.min.js") + + diff --git a/bin/asset-dump b/bin/asset-dump new file mode 100755 index 0000000000000..107a10e4f4d48 --- /dev/null +++ b/bin/asset-dump @@ -0,0 +1,25 @@ +#!/usr/bin/env ruby + +require 'fileutils' +include FileUtils + +lila_dir = pwd() +lila_js_dir = lila_dir + '/app/assets/javascripts' +lila_js_vendor_dir = lila_dir + '/app/assets/javascripts/vendor' +lila_deps_file = lila_dir + '/public/javascripts/deps.min.js' +deps = [ + 'jquery.min.js', + 'jquery.ui.min.js', + 'jquery.mousewheel.js', + 'tipsy.min.js' +] + +puts 'Dump js dependencies' + +codes = deps.map { |filename| + file = lila_js_vendor_dir + '/' + filename + File.open(file).read +} +allCode = codes.join("\n") + +File.open(lila_deps_file, 'w') { |f| f.puts allCode } diff --git a/bin/trans-dump b/bin/trans-dump index a9ba2da6ca6e9..426e15289bed6 100755 --- a/bin/trans-dump +++ b/bin/trans-dump @@ -11,13 +11,14 @@ code = """// Generated with bin/trans-dump package lila.i18n import play.api.mvc.RequestHeader +import play.api.templates.Html final class I18nKeys(translator: Translator) { - protected class Key(val key: String) { + final class Key(val key: String) { - def !(args: Any*)(implicit request: RequestHeader) : String = - translator.trans(key, args)(request) + def apply(args: Any*)(implicit req: RequestHeader): Html = + translator.trans(key, args)(req) } %keys% diff --git a/bin/trans-import b/bin/trans-import index 37029e4b82be2..09afe8352d045 100755 --- a/bin/trans-import +++ b/bin/trans-import @@ -17,6 +17,12 @@ def keyify(text) .gsub(/\s/, '') .uncapitalize end +def format(text) + text + .strip + .gsub('"', '') + .gsub(/%\w+%/, '%s') +end lichess_dir = File.expand_path(pwd() + '/../lichess') lichess_trans_dir = lichess_dir + '/src/Bundle/LichessBundle/Resources/translations' @@ -35,7 +41,7 @@ Dir[lichess_trans_dir + '/*'].each { |file| lines = File.open(file).readlines.map { |l| parts = l.split('":').each { |p| p.strip.gsub('"', '') } key = keyify(parts[0]) - val = parts[1].gsub('"', '').strip + val = format(parts[1]) key + '=' + val } if lang == 'frp' then lang = 'fp' end @@ -48,7 +54,7 @@ fr_file = lichess_trans_dir + '/messages.fr.yml' lines = File.open(fr_file).readlines.map { |l| parts = l.split('":').each { |p| p.strip.gsub('"', '') } key = keyify(parts[0]) - val = parts[0].gsub('"', '').strip + val = format(parts[1]) key + '=' + val } text = lines.join("\n") diff --git a/cli/src/main/scala/Main.scala b/cli/src/main/scala/Main.scala index 7ba017bbe29d0..49f7eb9c10200 100644 --- a/cli/src/main/scala/Main.scala +++ b/cli/src/main/scala/Main.scala @@ -22,6 +22,10 @@ object Main { case "info" :: Nil ⇒ Info(env) case "average-elo" :: Nil ⇒ AverageElo(env) case "index" :: Nil ⇒ IndexDb(env.gameRepo) + case "trans-js-dump" :: Nil ⇒ TransJsDump( + path = new File(env.app.path.getCanonicalPath + "/public/trans"), + pool = env.i18nPool, + keys = env.i18nKeys) case "finish" :: Nil ⇒ new Command { def apply() = env.gameFinishCommand.apply() } diff --git a/cli/src/main/scala/TransJsDump.scala b/cli/src/main/scala/TransJsDump.scala new file mode 100644 index 0000000000000..0a202230fc8bf --- /dev/null +++ b/cli/src/main/scala/TransJsDump.scala @@ -0,0 +1,60 @@ +package lila.cli + +import lila.i18n.{ I18nPool, I18nKeys } +import play.api.i18n.Lang +import java.io._ +import scalaz.effects._ + +case class TransJsDump( + path: File, + pool: I18nPool, + keys: I18nKeys) extends Command { + + val messages = List( + keys.unlimited, + keys.rated, + keys.casual, + keys.noGameAvailableRightNowCreateOne, + keys.thisGameIsRated, + keys.whiteCreatesTheGame, + keys.blackCreatesTheGame, + keys.whiteJoinsTheGame, + keys.blackJoinsTheGame, + keys.drawOfferSent, + keys.drawOfferDeclined, + keys.drawOfferAccepted, + keys.drawOfferCanceled, + keys.takebackPropositionSent, + keys.takebackPropositionDeclined, + keys.takebackPropositionAccepted, + keys.takebackPropositionCanceled, + keys.gameOver, + keys.yourTurn, + keys.waitingForOpponent) + + def apply: IO[Unit] = for { + _ ← putStrLn("Dumping JavaScript translations in " + path) + langs = pool.langs + _ ← run(path.mkdir, "Create directory") + _ ← run(langs foreach { lang ⇒ run(write(lang)) }, "Write translations") + } yield () + + def write(lang: Lang) { + val code = dump(lang) + val file = new File( + "%s/%s.js".format(path.getCanonicalPath, lang.language)) + val out = new PrintWriter( file ) + try{ out.print( code ) } + finally{ out.close } + } + + def dump(lang: Lang): String = + """lichess_translations = {%s};""".format(messages map { key ⇒ + """%s:"%s"""".format(key.key, key.to(lang)()) + } mkString ",") + + def run(op: ⇒ Unit, desc: String = "") = for { + _ ← desc.nonEmpty.fold(putStrLn(desc), io()) + _ ← io { op } + } yield () +} diff --git a/conf/messages b/conf/messages new file mode 100644 index 0000000000000..565505e4bc16c --- /dev/null +++ b/conf/messages @@ -0,0 +1,139 @@ +playWithAFriend=Jouer avec un ami +inviteAFriendToPlayWithYou=Inviter un ami à jouer avec vous +playWithTheMachine=Jouer avec l'ordinateur +challengeTheArtificialIntelligence=Défier l'intelligence artificielle +toInviteSomeoneToPlayGiveThisUrl=Pour inviter quelqu'un à jouer, donnez-lui cette url +gameOver=Partie terminée +waitingForOpponent=En attente de l'adversaire +waiting=En attente +yourTurn=A votre tour +aiNameLevelAiLevel=%s niveau %s +level=Niveau +toggleTheChat=Activer/Désactiver la discussion +toggleSound=Activer/Désactiver le son +chat=Discussion +giveUp=Admettre la défaite +resign=Abandonner +checkmate=Echec et mat +stalemate=Pat +white=Blanc +black=Noir +createAGame=Créer une partie +random=Aléatoire +noGameAvailableRightNowCreateOne=Aucune partie disponible, créez-en une! +whiteIsVictorious=Blanc est victorieux +blackIsVictorious=Noir est victorieux +playANewGame=Jouer une nouvelle partie +rematch=Revanche +playWithTheSameOpponentAgain=Jouer à nouveau avec le même adversaire +newOpponent=Nouvel adversaire +playWithAnotherOpponent=Jouer avec un autre adversaire +yourOpponentWantsToPlayANewGameWithYou=Votre adversaire souhaite jouer une nouvelle partie avec vous +joinTheGame=Rejoindre la partie +youAreViewingThisGameAsASpectator=Vous voyez cette partie en tant que spectateur +whitePlays=Blanc joue +blackPlays=Noir joue +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=L'autre joueur a quitté la partie. Vous pouvez forcer l'abandon, ou attendre qu'il revienne. +makeYourOpponentResign=Forcer l'abandon de l'adversaire déconnecté +forceResignation=Forcer l'abandon +talkInChat=Parler à l'autre joueur +theFirstPersonToComeOnThisUrlWillPlayWithYou=La première personne à ouvrir cette page jouera avec vous. +whiteCreatesTheGame=Blanc crée la partie +blackCreatesTheGame=Noir crée la partie +whiteJoinsTheGame=Blanc rejoint la partie +blackJoinsTheGame=Noir rejoint la partie +whiteResigned=Blanc abandonne +blackResigned=Noir abandonne +whiteLeftTheGame=Blanc quitte la partie +blackLeftTheGame=Noir quitte la partie +contact=Contact +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Il n'y a rien à voir ici. Si vous pensez qu'il s'agit d'un bug, vous pouvez envoyer un courriel à %s +shareThisUrlToLetSpectatorsSeeTheGame=Partagez cette url pour laisser des spectateurs voir la partie +replayAndAnalyse=Revoir et analyser +viewGameStats=Voir les statistiques de la partie +flipBoard=Retourner l'échiquier +threefoldRepetition=Triple répétition +claimADraw=Déclarer la partie nulle +offerDraw=Proposer le nul +draw=Partie nulle +nbConnectedPlayers=%s joueurs connectés +talkAboutChessAndDiscussLichessFeaturesInTheForum=Parler d'échecs et discuter les fonctionalités de lichess dans le forum +seeTheGamesBeingPlayedInRealTime=Voir les parties jouées en temps réel +gamesBeingPlayedRightNow=Parties jouées en ce moment +viewAllNbGames=Voir les %s parties +viewNbCheckmates=Voir les %s mats +viewInFullSize=Agrandir +logOut=Déconnexion +signIn=Connexion +signUp=Inscription +people=Membres +games=Parties +forum=Forum +chessPlayers=Joueurs d'échecs +first=Premier +previous=Précédent +next=Suivant +last=Dernier +minutesPerSide=Minutes par joueur +variant=Variante +timeControl=Contrôle du temps +start=Démarrer +username=Pseudo +password=Mot de passe +haveAnAccount=Déjà inscrit ? +allYouNeedIsAUsernameAndAPassword=Vous n'avez besoin que d'un pseudo et d'un mot de passe +learnMoreAboutLichess=En savoir plus sur Lichess +rank=Classement +gamesPlayed=Parties jouées +declineInvitation=Décliner l'invitation +cancel=Annuler +timeOut=Temps écoulé +drawOfferSent=Proposition de nul envoyée +drawOfferDeclined=Proposition de nul refusée +drawOfferAccepted=Proposition de nul acceptée +drawOfferCanceled=Proposition de nul annulée +yourOpponentOffersADraw=Votre adversaire propose le nul +accept=Accepter +decline=Refuser +playingRightNow=Partie en cours +abortGame=Annuler la partie +gameAborted=Partie annulée +standard=Standard +unlimited=Illimité +mode=Mode +casual=Amicale +rated=Classée +thisGameIsRated=Cette partie est classée +rematchOfferSent=Proposition de revanche envoyée +rematchOfferAccepted=Proposition de revanche acceptée +cancelRematchOffer=Annuler la proposition de revanche +play=Jouer +inbox=Boite de réception +chatRoom=Salon de discussion +composeMessage=Écrire un message +sentMessages=Messages envoyés +incrementInSeconds=Incrément en secondes +freeOnlineChess=Jeu d'échecs gratuit en ligne +spectators=Spectateurs : +nbWins=%s victoires +nbLosses=%s défaites +nbDraws=%s nuls +exportGames=Exporter les parties +color=Couleur +eloRange=Fourchette de classement +giveNbSeconds=Donner %s secondes +searchAPlayer=Rechercher un joueur +whoIsOnline=Qui est en ligne +allPlayers=Tous les joueurs +namedPlayers=Joueurs nommés +premoveEnabledClickAnywhereToCancel=Premove activé - Cliquer ailleurs pour annuler +thisPlayerUsesChessComputerAssistance=Ce joueur utilise un programme d'échecs +opening=Ouverture +takeback=Annuler le coup +proposeATakeback=Proposer l'annulation du coup +takebackPropositionSent=Annulation du coup proposée +takebackPropositionDeclined=Annulation du coup refusée +takebackPropositionAccepted=Annulation du coup acceptée +takebackPropositionCanceled=Annulation du coup annulée +yourOpponentProposesATakeback=Votre adversaire propose l'annulation du coup +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Jeu d'échecs gratuit en ligne. Jouez aux échecs maintenant avec une interface simple. Pas d'inscription, pas de pub, aucun plugin requis. Jouez aux échecs avec l'ordinateur, des amis ou des adversaires aléatoires diff --git a/conf/messages.af b/conf/messages.af new file mode 100644 index 0000000000000..a5eb882f3afc5 --- /dev/null +++ b/conf/messages.af @@ -0,0 +1,83 @@ +playWithAFriend=Speel teen 'n vriend +inviteAFriendToPlayWithYou=Nooi 'n vriend vir spel +playWithTheMachine=Speel teen die rekenaar +challengeTheArtificialIntelligence=Uitdaging teen kunsmatige intelligensie +toInviteSomeoneToPlayGiveThisUrl=Nooi iemand vir 'n spel, gebruik hierdie link +gameOver=Spel Verby +waitingForOpponent=Wag vir uitdager +waiting=Wag +yourTurn=Jou beurt +aiNameLevelAiLevel=%s vlak %s +level=Vlak +toggleTheChat=Chat aan/af +chat=Chat +giveUp=Gee op +resign=Gee oor +checkmate=Skaakmat +stalemate=Gelykop +white=Wit +black=Swart +createAGame=Skep 'n spel +noGameAvailableRightNowCreateOne=Geen spel beskikbaar op die oomblik, skep een! +whiteIsVictorious=Wit wen +blackIsVictorious=Swart wen +playANewGame=Begin 'n nuwe spel +rematch=Speel weer +playWithTheSameOpponentAgain=Speel weer teen dieselfde uitdager +yourOpponentWantsToPlayANewGameWithYou=Jou teenstander wil weer teen jou speel +joinTheGame=Sluit aan by spel +youAreViewingThisGameAsASpectator=Jy is 'n toeskouer van hierdie spel +whitePlays=Wit speel +blackPlays=Swart speel +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Ander speler het spel verlaat. Jy kan die persoon laat oorgee, of wag. +makeYourOpponentResign=Laat teenstander oorgee +forceResignation=Dwing oorgee +talkInChat=Gesels in chat +theFirstPersonToComeOnThisUrlWillPlayWithYou=Eerste persoon wat na hierdie link, speel teen jou. +whiteCreatesTheGame=Spel gemaak deur Wit +blackCreatesTheGame=Spel gemaak deur Swart +whiteJoinsTheGame=Wit sluit aan by spel +blackJoinsTheGame=Swart sluit aan by spel +whiteResigned=Wit gee oor +blackResigned=Swart gee oor +whiteLeftTheGame=Wit het spel verlaat +blackLeftTheGame=Swart het spel verlaat +contact=Kontak +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Daar's niks hier nie. As dit moontlik 'n fout is laat ons weet per epos by %s +shareThisUrlToLetSpectatorsSeeTheGame=Deel die link vir toeskouers +replayAndAnalyse=Speel weer en ondersoek +flipBoard=Draai bord +threefoldRepetition=Herhaal drie keer +claimADraw=Kies gelykop +draw=Gelykop +nbConnectedPlayers=%s aanlyn spelers +talkAboutChessAndDiscussLichessFeaturesInTheForum=Gesels oor skaak en Lichess funksies in die forum +seeTheGamesBeingPlayedInRealTime=Sien lewendige spel +gamesBeingPlayedRightNow=Spelle wat nou gespeel word +viewAllNbGames=Sien al %s spelle +viewNbCheckmates=Sien %s skaakmat spelle +viewInFullSize=Sien vol-grootte +logOut=Teken uit +signIn=Teken in +signUp=Registreer +people=Mense +games=Spelle +forum=Forum +chessPlayers=Skaak spelers +first=Eerste +previous=Vorige +next=Volgende +last=Laaste +minutesPerSide=Minute per kant +variant=Wissel +timeControl=Teen tyd +start=Begin +username=Gebruiker +password=Wagwoord +haveAnAccount=Klaar geregistreer? +allYouNeedIsAUsernameAndAPassword=Dis vinnig, jy't net 'n gebruiker-naam en wagwoord nodig. +learnMoreAboutLichess=Leer meer oor Lichess +rank=Vlak +gamesPlayed=Gespeel +declineInvitation=Nee dankie +cancel=Moenie diff --git a/conf/messages.ar b/conf/messages.ar new file mode 100644 index 0000000000000..349a512306e91 --- /dev/null +++ b/conf/messages.ar @@ -0,0 +1,123 @@ +playWithAFriend=إلعب مع صديق +inviteAFriendToPlayWithYou=إرسال دعوة لصديق للعب معك +playWithTheMachine=إلعب مع الحاسوب +challengeTheArtificialIntelligence=تحدى الذكاء الصناعي +toInviteSomeoneToPlayGiveThisUrl=لدعوة شخص ما للعب ، أعطه هذا الرابط +gameOver=إنتهت اللعبة +waitingForOpponent=في إنتظار الخصم +waiting=إنتظار +yourTurn=دورك +aiNameLevelAiLevel=%s مستوى %s +level=مستوى +toggleTheChat=تبادل الحديث +chat=دردشة +giveUp=إستسلام +resign=إنسحاب +checkmate=كش ملك +stalemate=الملك مخنوق +white=أبيض +black=أسود +createAGame=انشئ لعبه +random=عشوائي +noGameAvailableRightNowCreateOne=لا توجد لعبة متاحة الان , إنشاء لعبة ! +whiteIsVictorious=الأبيض هو الفائز +blackIsVictorious=الأسود هو الفائز +playANewGame=هل تريد أن تلعب لعبة جديدة +rematch=إعادة المبارة +playWithTheSameOpponentAgain=إللعب مع نفس الخصم مرة أخرى +newOpponent=خصم جديد +playWithAnotherOpponent=اللعب مع خصم جديد +yourOpponentWantsToPlayANewGameWithYou=الخصم يريد أن يلعب لعبة جديدة معك +joinTheGame=الانضمام إلى لعبة +youAreViewingThisGameAsASpectator=أنت تشارك في هذه اللعبة بصفة متفرج +whitePlays=دور الابيض +blackPlays=دور الاسود +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=اللاعب الآخر ترك اللعب. يمكنك فرض الاستسلام ، أو الأنتظار حتى يعود. +makeYourOpponentResign=جعل خصمك يستسلم +forceResignation=إجبار على الأستسلام +talkInChat=نقاش في الدردشة +theFirstPersonToComeOnThisUrlWillPlayWithYou=أول شخص يأتي على هذا الرابط سوف يلعب معك. +whiteCreatesTheGame=الأبيض انشأ اللعبة +blackCreatesTheGame=الأسود انشأ اللعبة +whiteJoinsTheGame=الأبيض ينضم إلى اللعبة +blackJoinsTheGame=الأسود ينضم إلى اللعبة +whiteResigned=الأبيض ينسحب +blackResigned=الأسود ينسحب +whiteLeftTheGame=الأبيض ترك اللعب +blackLeftTheGame=الأسود ترك اللعب +contact=راسل +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=ليس هناك ما نراه هنا. إذا كنت تعتقد أنه خظأ ، يمكنك إرسال بريد إلكتروني إلى %s +shareThisUrlToLetSpectatorsSeeTheGame=شارك هذا الرابط للسماح للمتفرجين بمشاهدة المباراة +replayAndAnalyse=إعادة وتحليل +flipBoard=تدوير اللوح +threefoldRepetition=تكرار ثلاث مرات +claimADraw=طلب التعادل +offerDraw=عرض التعادل +draw=تعادل +nbConnectedPlayers=%s المتواجدون الآن +talkAboutChessAndDiscussLichessFeaturesInTheForum=الحديث عن لعبة الشطرنج ومناقشة مزايا الموقع في المنتدى +seeTheGamesBeingPlayedInRealTime=مشاهدة المباريات الحالية +gamesBeingPlayedRightNow=الألعاب الجارية الآن +viewAllNbGames=مشاهدة جميع الألعاب وعددها %s +viewNbCheckmates=مشاهدة جميع الألعاب المنتهية بالفوز وعددها %s +viewInFullSize=عرض بالحجم الكامل +logOut=خروج +signIn=دخول +signUp=تسجيل +people=لاعبين +games=العاب +forum=المنتدى +chessPlayers=لاعبي الشطرنج +first=الأول +previous=السابق +next=التالي +last=الآخير +minutesPerSide=دقائق لكل جانب +variant=النوع +timeControl=التحكم بالوقت +start=إبدأ +username=إسم المستخدم +password=كلمة السر +haveAnAccount=هل لديك حساب؟ +allYouNeedIsAUsernameAndAPassword=كل ما تحتاجه هو إسم مستخدم وكلمة مرور. +learnMoreAboutLichess=Lichess معرفة المزيد حول +rank=المرتبة +gamesPlayed=عدد مرات اللعب +declineInvitation=رفض الدعوة +cancel=إلغاء +timeOut=إنتهى الوقت +drawOfferSent=تم إرسال عرض التعادل +drawOfferDeclined=تم رفض عرض التعادل +drawOfferAccepted=تم قبول عرض التعادل +drawOfferCanceled=تم إلغاءعرض التعادل +yourOpponentOffersADraw=الخصم يعرض عليك التعادل +accept=قبول +decline=رفض +playingRightNow=يلعب في الوقت الراهن +abortGame=ايقاف اللعب +gameAborted=اللعبة اوقفت +standard=قياسي +unlimited=غير محدود +mode=النمط +casual=غير رسمية +rated=خاضعة للترتيب العام +thisGameIsRated=هذه اللعبة تحسب في جدول الترتيب العام +rematchOfferSent=تم إرسال عرض مباراة ثانية +rematchOfferAccepted=تم قبول عرض المباراة الثانية +play=إلعب +inbox=صندوق الرسائل +chatRoom=غرفة الدردشة +composeMessage=أكتب رسالة +sentMessages=الرسائل المرسلة +incrementInSeconds=الزيادة بالثواني +freeOnlineChess=شطرنج أونلاين مجانا +spectators=المتفرجون +nbWins=%s ربح +nbLosses=%s خساره +nbDraws=%s تعادل +exportGames=تصدير اللعب +color=اللون +eloRange=منط +giveNbSeconds=اعطاء %s ثوان +searchAPlayer=البحث عن لاعب +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=لعبه شطرنج اون لاين مجانيه. العب شطرنج ألأن في واجهة نظيفه. لا تسجيل. لا دعايات. لا حاجه لوجود البلاجبن. العب الشطرنج مع الحاسوب.اصدقائك او مع خصم عشوائي. diff --git a/conf/messages.az b/conf/messages.az new file mode 100644 index 0000000000000..dbbf59f965b4d --- /dev/null +++ b/conf/messages.az @@ -0,0 +1,118 @@ +playWithAFriend=Yoldaşınla oyna +inviteAFriendToPlayWithYou=Yoldaşını oyuna dəvət et +playWithTheMachine=Komputerlə oyna +challengeTheArtificialIntelligence=Suni zəkaya meydan oxu +toInviteSomeoneToPlayGiveThisUrl=Kimisə onuya dəvət üçün bu ünvanı ver +gameOver=Oyunu uduzdun +waitingForOpponent=Rəqibi gözləyin +waiting=Gözləmə +yourTurn=Sizin növbənizdir +aiNameLevelAiLevel=%s səviyyə %s +level=Səviyyə +toggleTheChat=Söhbətə keçid +chat=Söhbət +giveUp=Geri çəkil +resign=Yenidən gir +checkmate=Mat +stalemate=Pat +white=Ağ +black=Qara +createAGame=Oyun yarat +random=Hansı gəldi +noGameAvailableRightNowCreateOne=Hazırda uyğun oyun yoxdur, özün yeni oyuna başla! +whiteIsVictorious=Ağlar qalib gəlir +blackIsVictorious=Qaralar qalib gəlir +playANewGame=Başqa oyun oyna +rematch=Əvəz çıxma +playWithTheSameOpponentAgain=Eyni rəqiblə yenidən oyna +newOpponent=Yeni(digər) rəqib +playWithAnotherOpponent=Yeni(digər) rəqiblə oyna +yourOpponentWantsToPlayANewGameWithYou=Rəqibiniz sizinlə yenidən oynamaq istəyir +joinTheGame=Oyuna başla +youAreViewingThisGameAsASpectator=Siz bu oyuna tamaşaçı kimi baxırsınız +whitePlays=Ağlar oynayır +blackPlays=Qaralar oynayır +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Rəqib oyunu tərk etdi. Ya məcburi məğlubiyyət daddırın, yada onu gözləyin +makeYourOpponentResign=Rəqibi məğlubiyyətə məcbur et +forceResignation=Məcburi məğlubiyyət +talkInChat=Söhbət edin +theFirstPersonToComeOnThisUrlWillPlayWithYou=Bu ünvana daxil olmuş ilk insan sizinlə oynasın +whiteCreatesTheGame=Ağlar oyunu qurur +blackCreatesTheGame=Qaralar oyunu qurur +whiteJoinsTheGame=Ağlar oyundadır +blackJoinsTheGame=Qaralar oyundadır +whiteResigned=Ağlar məğlub oldu +blackResigned=Qaralar məğlub oldu +whiteLeftTheGame=Ağlar oyunu tərk etdi +blackLeftTheGame=Qaralar oyunu tərk etdi +contact=Əlaqə qur +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Burada görməli heçnə yoxdur. Bunun xəta olduğunu deyirsənsə elektron məktub yaz: %s +shareThisUrlToLetSpectatorsSeeTheGame=Tamaşaçıların bu oyunu bu ünvanla görə bilərlər +replayAndAnalyse=Oyunun təkrarı və təhlili +flipBoard=Mövqeni dəyiş +threefoldRepetition=Üçqat təkrarlama +claimADraw=Heç-heçə təklifi +offerDraw=Heç-heçə təklif et +draw=Heç-heçə +nbConnectedPlayers=%s əlaqə qurmuş oyunçu +talkAboutChessAndDiscussLichessFeaturesInTheForum=Şahmat və 'Lichess' barədə forumda müzakirəyə qoşul +seeTheGamesBeingPlayedInRealTime=Hazırda oynanan oyunlara bax +gamesBeingPlayedRightNow=Hal-hazırda oynanan oyunlar +viewAllNbGames=Bütün %s oyuna bax +viewNbCheckmates=Bütün %s bitmiş oyunlara bax +viewInFullSize=Tam görünüşlə bax +logOut=Xətdən çıx +signIn=Xəttə bağlan +signUp=Üzv ol +people=İnsanlar +games=Oyunlar +forum=Forum +chessPlayers=Şahmatçılar +first=Birinci +previous=Əvvəlki +next=Sonrakı +last=Sonuncu +minutesPerSide=Hər şahmatçının oyun müddəti +variant=Variant +timeControl=Vaxta nəzarət +start=Başlanğıc +username=Üzv adı +password=Şifrə +haveAnAccount=Üzvlüyünüz varmı? +allYouNeedIsAUsernameAndAPassword=Lazım olan yalnız üzv adı və şifrədir +learnMoreAboutLichess=Lichess haqqında daha ətraflı məlumat +rank=Təsnifat +gamesPlayed=Oynadığı oyunlar +declineInvitation=Dəvəti rədd et +cancel=İmtina +timeOut=Vaxt bitdi +drawOfferSent=Heç-heçə təklifi göndərildi +drawOfferDeclined=Heç-heçə təklifi rədd edildi +drawOfferAccepted=Heç-heçə təklifi qəbul edildi +drawOfferCanceled=Heç-heçə təklifi geri götürüldü +yourOpponentOffersADraw=Rəqibiniz heç-heçə təklif edir +accept=Qəbul et +decline=Rədd et +playingRightNow=İndi oyna +abortGame=Oyunu ləğv et +gameAborted=Oyun ləğv olundu +standard=Standart +unlimited=Məhdudiyyətsiz +mode=Növ +casual=Təsadüfi +rated=Qiymətləndirmə +thisGameIsRated=Bu oyun qiymətləndirilir +rematchOfferSent=Əvəz çıxma təklifi göndərildi +rematchOfferAccepted=Əvəz çıxma qəbul edildi +play=Oyna +inbox=Gələnlər qutusu +chatRoom=Söhbət otağı +composeMessage=Məktub yaz +sentMessages=İsamrıcı göndər +incrementInSeconds=saniyə artırma +freeOnlineChess=Pulsuz +spectators=tamaşaçı +nbWins=%s qalib gəldi +nbLosses=%s -in itgiləri +nbDraws=%s şah verir +color=rəng diff --git a/conf/messages.be b/conf/messages.be new file mode 100644 index 0000000000000..cddfce6c75b9c --- /dev/null +++ b/conf/messages.be @@ -0,0 +1,138 @@ +playWithAFriend=Гуляць з сябрам +inviteAFriendToPlayWithYou=Запрасіць сябра да гульні +playWithTheMachine=Гуляць з кампутарам +challengeTheArtificialIntelligence=Выклік штучнаму інтэлекту +toInviteSomeoneToPlayGiveThisUrl=Выкарыстайце гэтую спасылку каб запрасіць кагосьці да гульні +gameOver=Гульня скончана +waitingForOpponent=Чакайце апанента +waiting=Чакайце +yourTurn=Ваша чарга +aiNameLevelAiLevel=%s узровень %s +level=Узровень +toggleTheChat=Пераключыць чат +chat=Чат +giveUp=Здацца +resign=Скончыць гульню +checkmate=Мат +stalemate=Пат +white=Белыя +black=Чорныя +createAGame=Стварыць гульню +random=Выпадкова +noGameAvailableRightNowCreateOne=Няма даступных гульняў, стварыце сваю! +whiteIsVictorious=Белыя перамаглі +blackIsVictorious=Чорныя перамаглі +playANewGame=Пачаць новую гульню +rematch=Перагуляць +playWithTheSameOpponentAgain=Згуляць з гэтым жа супернікам зноў +newOpponent=Новы супернік +playWithAnotherOpponent=Гуляць з іншым супернікам +yourOpponentWantsToPlayANewGameWithYou=Ваш супернік хоча згуляць з вамі зноў +joinTheGame=Далучыцца да гульні +youAreViewingThisGameAsASpectator=Вы з'яўляецеся назіральнікам гэтай гульні +whitePlays=Ход белых +blackPlays=Ход чорных +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Супернік пакінуў гульню. Вы можаце скончыць гульню, ці пачакаць яго +makeYourOpponentResign=Прымусіць суперніка скончыць гульню +forceResignation=Прымусіць суперніка здацца +talkInChat=Вашае паведамленне +theFirstPersonToComeOnThisUrlWillPlayWithYou=Першы прайшоўшы па гэтай спасылцы зможа згуляць з вамі +whiteCreatesTheGame=Белыя ствараюць гульню +blackCreatesTheGame=Чорныя ствараюць гульню +whiteJoinsTheGame=Белыя далучаюцца да гульні +blackJoinsTheGame=Чорныя далучаюцца да гульні +whiteResigned=Белыя здаліся +blackResigned=Чорныя здаліся +whiteLeftTheGame=Белыя пакінулі гульню +blackLeftTheGame=Чорныя пакінулі гульню +contact=Зваротная сувязь +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Тут нічога няма. Калі вы лічыце гэта памылкай, то можаце даслаць ліст на адрас %s +shareThisUrlToLetSpectatorsSeeTheGame=Падзяліцеся гэтай спасылкай каб дазволіць назіральнікам глядзець гульню +replayAndAnalyse=Паўтор і аналіз +viewGameStats=Паглядзець статыстыку гульні +flipBoard=Развярнуць дошку +threefoldRepetition=Трохразовы паўтор +claimADraw=Запатрабаваць нічыю +offerDraw=Прапанаваць нічыю +draw=Нічыя +nbConnectedPlayers=%s гульцоў анлайн +talkAboutChessAndDiscussLichessFeaturesInTheForum=Паразмаўляць пра шахматы і абмеркаваць асаблівасці lichess на форуме +seeTheGamesBeingPlayedInRealTime=Назіраць за дзейнымі гульнямі +gamesBeingPlayedRightNow=Дзейныя гульні +viewAllNbGames=Глядзець усе %s гульні +viewNbCheckmates=Глядзець %s маты +viewInFullSize=Глядзець у поўным памеры +logOut=Выйсці +signIn=Увайсці +signUp=Зарэгістравацца +people=Людзі +games=Гульні +forum=Форум +chessPlayers=Шахматысты +first=Першы +previous=Папярэдні +next=Наступны +last=Апошні +minutesPerSide=Хвілін на партыю +variant=Варыянт +timeControl=Абмежаванне часу +start=Пачаць +username=Карыстальнік +password=Пароль +haveAnAccount=Ужо зарэгістраваны? +allYouNeedIsAUsernameAndAPassword=Вам патрэбны толькі імя карыстальніка і пароль +learnMoreAboutLichess=Даведацца больш пра Lichess +rank=Ранг +gamesPlayed=Партый згуляна +declineInvitation=Адхіліць запрашэнне +cancel=Скасаваць +timeOut=Час скончыўся +drawOfferSent=Прапанова нічыі адпраўлена +drawOfferDeclined=Прапанова нічыі адхілена +drawOfferAccepted=Прапанова нічыі прынята +drawOfferCanceled=Прапанова нічыі скасавана +yourOpponentOffersADraw=Ваш супернік прапануе нічыю +accept=Пацвердзіць +decline=Адхіліць +playingRightNow=Цяпер гуляюць +abortGame=Спыніць гульню +gameAborted=Гульня спынена +standard=Стандартная +unlimited=Без абмежавання часу +mode=Рэжым +casual=Бязрэйтынгавая +rated=Рэйтынгавая +thisGameIsRated=Гульня на рэйтынг +rematchOfferSent=Прапанова перагуляць адпраўлена +rematchOfferAccepted=Прапанова перагуляць прынята +cancelRematchOffer=скасаваць прапанову перагуляць +play=Гуляць +inbox=Уваходныя +chatRoom=Чат +composeMessage=Напісаць паведамленне +sentMessages=Дасланыя паведамленні +incrementInSeconds=Прырашчэнне ў секундах +freeOnlineChess=Бясплатныя анлайн шахматы +spectators=Назіральнікі: +nbWins=%s перамог +nbLosses=%s параз +nbDraws=%s нічыіх +exportGames=Экспарт гульняў +color=Колер +eloRange=Рэйтынг суперніка +giveNbSeconds=Даць %s секунд +searchAPlayer=Шукаць гульца +whoIsOnline=Хто анлайн +allPlayers=Усе гульцы +namedPlayers=Зарэгістраваныя гульцы +premoveEnabledClickAnywhereToCancel=Наступны ход вызначаны - Пстрыкніце ў любым месцы каб скасаваць яго +thisPlayerUsesChessComputerAssistance=Гэты гулец выкарыстоўвае шахматную праграму +opening=адкрыццё +takeback=Адмяніць ход +proposeATakeback=Прапанаваць адмяніць ход +takebackPropositionSent=Прапанова адмяніць ход адпраўлена +takebackPropositionDeclined=Прапанова адмяніць ход адхілена +takebackPropositionAccepted=Прапанова адмяніць ход прынята +takebackPropositionCanceled=Прапанова адмяніць ход скасавана +yourOpponentProposesATakeback=Ваш супенрнік прапануе адмяніць ход +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Бясплатныя анлайн шахматы. Гуляй у шахматы са зручным інтэрфейсам. Без рэгістрацыі, без рэкламы, без дадатковых праграм. Гуляй у шахматы з кампутарам, сябрамі ці выпадковым супернікам. diff --git a/conf/messages.bg b/conf/messages.bg new file mode 100644 index 0000000000000..f40236cbcda63 --- /dev/null +++ b/conf/messages.bg @@ -0,0 +1,128 @@ +playWithAFriend=Играй с приятел +inviteAFriendToPlayWithYou=Покани приятел да играе с теб +playWithTheMachine=Играй с компютъра +challengeTheArtificialIntelligence=Предизвикай изкуствения интелект +toInviteSomeoneToPlayGiveThisUrl=За да поканиш някого на игра, дай този адрес +gameOver=Край на играта +waitingForOpponent=Изчакване на опонент +waiting=Изчакване +yourTurn=Твой ред +aiNameLevelAiLevel=%s ниво %s +level=Ниво +toggleTheChat=Активирай чата +chat=Чат +giveUp=Откажи се +resign=Предай се +checkmate=Шах мат +stalemate=Пат +white=Бели +black=Черни +createAGame=Създай игра +random=Произволно +noGameAvailableRightNowCreateOne=Няма налична игра в момента, създай! +whiteIsVictorious=Белите печелят +blackIsVictorious=Черните печелят +playANewGame=Започни нова игра +rematch=Реванш +playWithTheSameOpponentAgain=Играйте със същият опонент отново +newOpponent=Произволен противник +playWithAnotherOpponent=Играй с друг противник +yourOpponentWantsToPlayANewGameWithYou=Вашият опонент иска да играете игра отново +joinTheGame=Влез в игра +youAreViewingThisGameAsASpectator=Гледате играта като наблюдател +whitePlays=Бели на ход +blackPlays=Черни на ход +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Другият играч напусна играта. Можеш да подадеш оставка или да си го чакаш още. +makeYourOpponentResign=Накарай опонента си да се предаде +forceResignation=Насилствено предаване +talkInChat=Пиши в чата +theFirstPersonToComeOnThisUrlWillPlayWithYou=Първият човек, който отвори този адрес ще играе с вас. +whiteCreatesTheGame=Белите създават играта +blackCreatesTheGame=Черните създават играта +whiteJoinsTheGame=Белите се присъединяват в играта +blackJoinsTheGame=Черните се присъединяват в играта +whiteResigned=Белите се отказаха +blackResigned=Черните се отказаха +whiteLeftTheGame=Белите напуснаха играта +blackLeftTheGame=Черните напуснаха играта +contact=Контакт +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Няма нищо за гледане тук. Ако мислете, че това е бъг, можете да изпратите имейл на %s +shareThisUrlToLetSpectatorsSeeTheGame=Сподели този адрес с наблюдатели +replayAndAnalyse=Отговори и анализирай +flipBoard=Завърти дъската +threefoldRepetition=Прекъсване заради тройно повтаряне +claimADraw=Предположи пат +offerDraw=Предложи пат +draw=Реми +nbConnectedPlayers=%s свързани играчи +talkAboutChessAndDiscussLichessFeaturesInTheForum=Говори за шах и обсъждай lichess features във форума +seeTheGamesBeingPlayedInRealTime=Виж игрите, който се играят в реално време +gamesBeingPlayedRightNow=Игри, който се играят сега +viewAllNbGames=Виж всички %s игри +viewNbCheckmates=Виж %s шах мата +viewInFullSize=Отвори на пълен екран +logOut=Отписване +signIn=Влез +signUp=Регистрирай се +people=Хора +games=Игри +forum=Форум +chessPlayers=Шах играчи +first=Първи +previous=Предходен +next=Следващ +last=Последен +minutesPerSide=Минути за страна +variant=Вариант +timeControl=Контрол на времето +start=Старт +username=Потребител +password=Парола +haveAnAccount=Имате акаунт? +allYouNeedIsAUsernameAndAPassword=Всичко, което ви е необходимо е потребителско име и парола +learnMoreAboutLichess=Научи повече за Lichess +rank=Ранк +gamesPlayed=Играни игри +declineInvitation=Откажи покана +cancel=Отказ +timeOut=Изтекло време +drawOfferSent=Изпратено предложение за реми +drawOfferDeclined=Отказано предложение за реми +drawOfferAccepted=Прието предложение за пат +drawOfferCanceled=Отказано предложение за пат +yourOpponentOffersADraw=Твоят опонент предложи пат +accept=Приеми +decline=Откажи +playingRightNow=Играещи сега +abortGame=Развали игра +gameAborted=Играта е развалена +standard=Стандартен +unlimited=Неограничен +mode=Вид +casual=Стандартен +rated=Ранк +thisGameIsRated=Тази игра е ранкирана +rematchOfferSent=Молбата за реванш е изпратена +rematchOfferAccepted=Молбата за реванш е приета +play=Играй +inbox=Кутия +chatRoom=Чат стая +composeMessage=Напиши ново съобщение +sentMessages=Изпратени съобщения +incrementInSeconds=Губене в секунди +freeOnlineChess=Безплатен онлайн шах +spectators=Зрители: +nbWins=%s победи +nbLosses=%s загуби +nbDraws=%s ремита +exportGames=експорт на партии +color=цвят +eloRange=Рейтинг ЕЛО +giveNbSeconds=Задай %s секунди +searchAPlayer=Търси съперик +whoIsOnline=Кой е на линия +allPlayers=Всички играчи +namedPlayers=Име на играч +premoveEnabledClickAnywhereToCancel=Предварителен ход зададен - Натиснете където и да е да го отмените +thisPlayerUsesChessComputerAssistance=Този играч използва компютърен софтуер за асистенция +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Безплатна онлайн шах игра. Играй шах сега в изчистен интерфейс. Без нужда от регистрация, реклами или добавки. Играй шах с компютъра, с приятели или случайни противници. diff --git a/conf/messages.bs b/conf/messages.bs new file mode 100644 index 0000000000000..6b4bf9259f505 --- /dev/null +++ b/conf/messages.bs @@ -0,0 +1,129 @@ +playWithAFriend=Igraj s prijateljem +inviteAFriendToPlayWithYou=Pozovi prijatelja +playWithTheMachine=Igraj protiv računara +challengeTheArtificialIntelligence=Izazovi vještačku inteligenciju +toInviteSomeoneToPlayGiveThisUrl=Kako bi pozvao nekoga, pošalji slijedeći link: +gameOver=Kraj igre +waitingForOpponent=Čekaj protivnika +waiting=Čekamo +yourTurn=Ti si na potezu +aiNameLevelAiLevel=%s Nivo %s +level=Nivo +toggleTheChat=Aktiviraj/deaktiviraj chat +chat=Chat +giveUp=Odustani +resign=Predaj +checkmate=Šah-mat +stalemate=Pat +white=Bijeli +black=Crni +createAGame=Kreiraj partiju +random=Slučajan +noGameAvailableRightNowCreateOne=Trenutno nema raspoložive partije, kreiraj je! +whiteIsVictorious=Bijeli pobjeđuje +blackIsVictorious=Crni pobjeđuje +playANewGame=Započni novu igru +rematch=Revanš +playWithTheSameOpponentAgain=Igraj opet sa istim protivnikom +newOpponent=Novi protivnik +playWithAnotherOpponent=Igraj protiv nekog drugog +yourOpponentWantsToPlayANewGameWithYou=Tvoj protivnik želi opet ograti s tobom +joinTheGame=Uključi se u igru +youAreViewingThisGameAsASpectator=Gledate ovu igru kao promatrač +whitePlays=Bijeli je na potezu +blackPlays=Crni je na potezu +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Protivnički igrač je napustio igru. Možete tražiti da preda partiju ili čekati. +makeYourOpponentResign=Tražite da preda igru. +forceResignation=Tražite da preda igru. +talkInChat=Chat +theFirstPersonToComeOnThisUrlWillPlayWithYou=Prva osoba koja iskoristi ovaj link će igrati s vama +whiteCreatesTheGame=Bijeli kreira igru +blackCreatesTheGame=Crni kreira igru +whiteJoinsTheGame=Bijeli se pridružio +blackJoinsTheGame=Crni se pridružio +whiteResigned=Bijeli je predao +blackResigned=Crni je predao +whiteLeftTheGame=Bijeli je napustio igru +blackLeftTheGame=Crni je napustio igru +contact=Kontakt +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Ovdje se nema šta vidjeti. Ako mislite da je bug, pošaljite email na %s +shareThisUrlToLetSpectatorsSeeTheGame=Podijeli ovaj link kako bi posmatrači mogli vidjeti igru +replayAndAnalyse=Repriza i analiza +flipBoard=Zamijeni strane +threefoldRepetition=Pozicija tri puta ponovljena +claimADraw=Zatraži neriješeno +offerDraw=Ponudi remi +draw=neriješeno +nbConnectedPlayers=%s spojenih igrača +talkAboutChessAndDiscussLichessFeaturesInTheForum=Razgovaraj o šahu i raspravljaj lichess značajke na forumu +seeTheGamesBeingPlayedInRealTime=Pogledaj trenutne igre +gamesBeingPlayedRightNow=Trenutne igre +viewAllNbGames=Pogledaj sve %s igre +viewNbCheckmates=Pogledaj %s matova +viewInFullSize=Pogledaj u punoj veličini +logOut=Odjava +signIn=Prijava +signUp=Registracija +people=Ljudi +games=Igre +forum=Forum +chessPlayers=Igrači +first=Prvi +previous=Prošli +next=Sljedeći +last=Zadnji +minutesPerSide=Minuta po strani +variant=Varijanta +timeControl=Upravljanje vremenom +start=Početak +username=Korisničko ime +password=Lozinka +haveAnAccount=Imate li račun? +allYouNeedIsAUsernameAndAPassword=Sve što trebate je korisničko ime i lozinka. +learnMoreAboutLichess=Nauči više o Lichess-u +rank=Rank +gamesPlayed=Igara odigrano +declineInvitation=Odbi pozivnicu +cancel=Odgodi +timeOut=Vrijeme za partiju isteklo +drawOfferSent=Ponuda za remi poslana +drawOfferDeclined=Punuda za remi odbijena +drawOfferAccepted=Ponuda za remi prihvaćena +drawOfferCanceled=Ponuda za remi povučena +yourOpponentOffersADraw=Protivnik nudi remi +accept=Prihvati +decline=Odbij +playingRightNow=Upravo igra +abortGame=Prekini partiju +gameAborted=Partija prekinuta +standard=Standardan +unlimited=Neogranicen +mode=Mod +casual=Nerangiran +rated=Rangiran +thisGameIsRated=Ova partija je rangirana +rematchOfferSent=Punuda za revanš poslata +rematchOfferAccepted=Punuda za revanš prihvaćena +cancelRematchOffer=Otkaži ponudu za revanš +play=Igraj +inbox=Poruke +chatRoom=Razgovaranje +composeMessage=Skladaj poruku +sentMessages=Poslane pruke +incrementInSeconds=Dodatnih sekundi po potezu +freeOnlineChess=Besplatni internet šah +spectators=Posmatrača +nbWins=%s pobjeda +nbLosses=%s poraza +nbDraws=%s remija +exportGames=Izvezi odigrane partije +color=Boja +eloRange=ELO raspon +giveNbSeconds=Daj protivniku %s sekundi +searchAPlayer=Nađi igrača +whoIsOnline=Ko je trenutno spojen +allPlayers=Svi igrači +namedPlayers=Imenovani igrači +premoveEnabledClickAnywhereToCancel=Potez unaprijed uključen - Klikni bilo gdje da otkažeš +thisPlayerUsesChessComputerAssistance=Ovaj igrac koristi šahovski računar za pomoć +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Besplatni internet šah. Igrajte šah sa čistim interface-om. Registracija nije neophodna, nema reklama, ne zahtijeva browser plugins. Igrajte protiv računara, prijatelja ili slučajnih protivnika. diff --git a/conf/messages.ca b/conf/messages.ca new file mode 100644 index 0000000000000..f21933c920158 --- /dev/null +++ b/conf/messages.ca @@ -0,0 +1,138 @@ +playWithAFriend=Juga amb un amic +inviteAFriendToPlayWithYou=Convida un amic a jugar amb tu +playWithTheMachine=Juga amb la màquina +challengeTheArtificialIntelligence=Desafia la intel·ligència artificial +toInviteSomeoneToPlayGiveThisUrl=Per convidar algú a jugar, envia-li aquesta URL +gameOver=Joc finalitzat +waitingForOpponent=Esperant l'oponent +waiting=Esperant +yourTurn=El teu torn +aiNameLevelAiLevel=%s nivell %s +level=Nivell +toggleTheChat=Activa el xat +chat=Xat +giveUp=Abandonar +resign=Retirar-se +checkmate=Escac i mat +stalemate=Taules +white=Blanques +black=Negres +createAGame=Crea una partida +random=Aleatori +noGameAvailableRightNowCreateOne=Ara no hi ha cap partida disponible, crea'n una! +whiteIsVictorious=Les blanques han guanyat +blackIsVictorious=Les negres han guanyat +playANewGame=Juga una nova partida +rematch=Revenja +playWithTheSameOpponentAgain=Juga un altre cop amb el mateix oponent +newOpponent=Nou oponent +playWithAnotherOpponent=Juga amb un altre oponent +yourOpponentWantsToPlayANewGameWithYou=El teu oponent vol jugar una altra partida amb tu +joinTheGame=Uneix-te a la partida +youAreViewingThisGameAsASpectator=Estàs mirant aquesta partida com a espectador +whitePlays=Les blanques juguen +blackPlays=Les negres juguen +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=L'altre jugador ha deixat la partida. Pots forçar la seva rendició o pots esperar-lo. +makeYourOpponentResign=Fes que el teu oponent es rendeixi +forceResignation=Forçar la rendició +talkInChat=Xateja +theFirstPersonToComeOnThisUrlWillPlayWithYou=La primera persona en venir a aquesta url jugarà amb tu. +whiteCreatesTheGame=Les blanques creen la partida +blackCreatesTheGame=Les negres creen la partida +whiteJoinsTheGame=Les blanques s'uneixen a la partida +blackJoinsTheGame=Les negres s'uneixen a la partida +whiteResigned=Les blanques s'han rendit +blackResigned=Les negres s'han rendit +whiteLeftTheGame=Les blanques han abandonat la partida +blackLeftTheGame=Les negres han abandonat la partida +contact=Contactar +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Aquí no hi ha res per a veure. Si creus que el programa ha fallat, pots enviar un email a %s +shareThisUrlToLetSpectatorsSeeTheGame=Comparteix aquesta url per a que els espectadors puguin veure la partida +replayAndAnalyse=Repetició i anàlisi +viewGameStats=Veure les estadístiques de les partides +flipBoard=Girar el tauler +threefoldRepetition=Triple repetició de la posició +claimADraw=Solicitar taules +offerDraw=Oferir taules +draw=Taules +nbConnectedPlayers=%s jugadors connectats +talkAboutChessAndDiscussLichessFeaturesInTheForum=Parla d'escacs i discuteix tot sobre el lichess en el fòrum +seeTheGamesBeingPlayedInRealTime=Veure els jocs que s'estan jugant ara mateix +gamesBeingPlayedRightNow=Jocs que s'estan jugant ara +viewAllNbGames=Mirar totes les %s partides +viewNbCheckmates=Mirar %s escacs i mat +viewInFullSize=Veure en mida completa +logOut=Tancar sessió +signIn=Començar sessió +signUp=Registra't +people=Gent +games=Partides +forum=Fòrum +chessPlayers=Jugadors d'escacs +first=Primer +previous=Anterior +next=Següent +last=Últim +minutesPerSide=Minuts per banda +variant=Variant +timeControl=Control de temps +start=Començar +username=Nom d'usuari +password=Contrasenya +haveAnAccount=Ja tens un compte? +allYouNeedIsAUsernameAndAPassword=Tot el que et cal és un nom d'usuari i una contrasenya. +learnMoreAboutLichess=Més informació sobre Lichess +rank=Classificació +gamesPlayed=Partides jugades +declineInvitation=Rebutjar la invitació +cancel=Cancel·lar +timeOut=Temps exhaurit +drawOfferSent=Oferta de taules enviada +drawOfferDeclined=Oferta de taules no acceptada +drawOfferAccepted=Oferta de taules acceptada +drawOfferCanceled=Oferta de taules cancel.lada +yourOpponentOffersADraw=El teu contrincant ofereix taules +accept=Accepto +decline=No accepto +playingRightNow=Jugant en aquest moment +abortGame=Interrompre el joc +gameAborted=Joc interromput +standard=Normal +unlimited=Il·limitat +mode=Modus +casual=Informal +rated=Puntuat +thisGameIsRated=Aquest joc serà puntuat +rematchOfferSent=Oferiment de revenja enviat +rematchOfferAccepted=Oferiment de revenja acceptat +cancelRematchOffer=Declinar l'oferiment de revenja +play=Juga +inbox=Bústia d'entrada +chatRoom=Sala de xat +composeMessage=Escriu un missatge +sentMessages=Envia missatges +incrementInSeconds=Increment en segons +freeOnlineChess=Escacs online de franc +spectators=Espectadors +nbWins=%s victories +nbLosses=%s derrotes +nbDraws=%s taules +exportGames=Exportar jocs +color=Color +eloRange=Rang d'ELO +giveNbSeconds=Dóna %s segons +searchAPlayer=Cerca un jugador +whoIsOnline=Qui hi ha connectat +allPlayers=Tots els jugadors +namedPlayers=Jugadors amb nom +premoveEnabledClickAnywhereToCancel=Pre-jugada activada - Clica a qualsevol lloc per a cancel·lar +thisPlayerUsesChessComputerAssistance=Aquest jugador utilitza l'ajuda d'un ordinador +opening=Obertura +takeback=Desfés +proposeATakeback=Proposar desfer la jugada +takebackPropositionSent=Proposta de desfer la jugada enviada +takebackPropositionDeclined=Proposta de desfer la jugada declinada +takebackPropositionAccepted=Proposta de desfer la jugada acceptada +takebackPropositionCanceled=Proposta de desfer la tirada cancel·lada +yourOpponentProposesATakeback=El teu oponent proposa desfer la última jugada +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Joc d'escacs gratuït online. Juga a escacs ara amb una interfície neta. No cal registrar-se, sense anuncis, no calen plugins. Juga a escacs amb l'ordinador, amics o oponents a l'atzar. diff --git a/conf/messages.cs b/conf/messages.cs new file mode 100644 index 0000000000000..54a148daa59f2 --- /dev/null +++ b/conf/messages.cs @@ -0,0 +1,138 @@ +playWithAFriend=Vyzvat kamaráda +inviteAFriendToPlayWithYou=Zobrazí pozvánku do hry, kterou odešlete kamarádovi +playWithTheMachine=Hrát proti počítači +challengeTheArtificialIntelligence=Změřte síly s umělou inteligencí +toInviteSomeoneToPlayGiveThisUrl=Pro přizvání kamaráda k partii mu pošlete tento odkaz: +gameOver=Konec hry +waitingForOpponent=Čekání na soupeře +waiting=Čekání +yourTurn=Jste na tahu +aiNameLevelAiLevel=%s - úroveň %s +level=Úroveň +toggleTheChat=Přepnout chat +chat=Chat +giveUp=Vzdát se +resign=Vzdát se +checkmate=Mat +stalemate=Pat +white=Bílý +black=Černý +createAGame=Vytvořit hru +random=Náhodná +noGameAvailableRightNowCreateOne=Momentálně není k dispozici žádná hra. Vytvořte ji! +whiteIsVictorious=Vyhrál bílý +blackIsVictorious=Vyhrál černý +playANewGame=Hrát novou hru +rematch=Odveta +playWithTheSameOpponentAgain=Hrát znovu se stejným soupeřem +newOpponent=Nový protihráč +playWithAnotherOpponent=Hrát s novým soupeřem +yourOpponentWantsToPlayANewGameWithYou=Váš soupeř s Vámi chce hrát další partii +joinTheGame=Připojit se ke hře +youAreViewingThisGameAsASpectator=Tuto hru sledujete jako divák +whitePlays=Bílý na tahu +blackPlays=Černý na tahu +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Soupeř opustil hru. Můžete na něj počkat, nebo vynutit jeho vzdání partie. +makeYourOpponentResign=Vynutit vzdání partie +forceResignation=Vynutit vzdání partie +talkInChat=Pro povídání v chatu pište sem +theFirstPersonToComeOnThisUrlWillPlayWithYou=První, kdo přijde pomocí tohoto odkazu, bude s Vámi hrát +whiteCreatesTheGame=Bílý vytváří hru +blackCreatesTheGame=Černý vytváří hru +whiteJoinsTheGame=Bílý se připojuje ke hře +blackJoinsTheGame=Černý se připojuje ke hře +whiteResigned=Bílý se vzdal +blackResigned=Černý se vzdal +whiteLeftTheGame=Bílý opustil hru +blackLeftTheGame=Černý opustil hru +contact=Kontakt +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Není tu nic k vidění. Pokud si myslíte, že je to chyba, pošlete e-mail na %s +shareThisUrlToLetSpectatorsSeeTheGame=Pomocí tohoto odkazu můžete pozvat ostatní ke sledování této partie +replayAndAnalyse=Přehrát a analyzovat partii +viewGameStats=Zobrazit statistiky partie +flipBoard=Otočit šachovnici +threefoldRepetition=Trojí opakování pozice +claimADraw=Reklamovat remízu +offerDraw=Nabídnout remízu +draw=Remíza +nbConnectedPlayers=%s hráčů online +talkAboutChessAndDiscussLichessFeaturesInTheForum=Ve fóru můžete diskutovat o projektu Lichess a šachách obecně +seeTheGamesBeingPlayedInRealTime=Sledujte právě probíhající partie v reálném čase +gamesBeingPlayedRightNow=Právě probíhající partie +viewAllNbGames=Zobrazit všech %s partií +viewNbCheckmates=Zobrazit všech %s matů +viewInFullSize=Zobrazit v plné velikosti +logOut=Odhlásit se +signIn=Přihlásit se +signUp=Registrace +people=Lidé +games=Partie +forum=Fórum +chessPlayers=Hráči +first=První +previous=Předchozí +next=Další +last=Poslední +minutesPerSide=Minut pro každého hráče +variant=Varianta +timeControl=Tempo hry +start=Start +username=Uživatelské jméno +password=Heslo +haveAnAccount=Máte již účet? +allYouNeedIsAUsernameAndAPassword=Vše co potřebujete je uživatelské jméno a heslo. +learnMoreAboutLichess=Dozvědět se více o Lichess +rank=Pořadí +gamesPlayed=Odehraných partií +declineInvitation=Odmítnout výzvu +cancel=Zrušit +timeOut=Čas vypršel +drawOfferSent=Nabídka remízy byla odeslána +drawOfferDeclined=Soupeř remízu odmítl +drawOfferAccepted=Soupeř remízu přijal +drawOfferCanceled=Nabídka remízy byla zrušena +yourOpponentOffersADraw=Soupeř nabízí remízu +accept=Přijmout +decline=Odmítnout +playingRightNow=Právě se hraje +abortGame=Zrušit hru +gameAborted=Hra byla zrušena +standard=Standard +unlimited=Bez hodin +mode=Režim hry +casual=Jen tak +rated=O body +thisGameIsRated=Tato hra se započítává do hodnocení +rematchOfferSent=Nabídka odvety byla odeslána +rematchOfferAccepted=Nabídka odvety byla přijata +cancelRematchOffer=Zrušit nabídku odvety +play=Hrát +inbox=Doručené +chatRoom=Chat +composeMessage=Napsat zprávu +sentMessages=Odeslané +incrementInSeconds=Bonus za tah (v sekundách) +freeOnlineChess=Šachy online zdarma +spectators=Diváci: +nbWins=%s výhry +nbLosses=%s prohry +nbDraws=%s remízy +exportGames=Exportovat partie +color=Barva +eloRange=Síla hráče +giveNbSeconds=Přidat %s sekund +searchAPlayer=Hledat hráče +whoIsOnline=Kdo je online +allPlayers=Všichni hráči +namedPlayers=Registrovaní hráči +premoveEnabledClickAnywhereToCancel=Předtah byl zadán - kliknutím kamkoliv na šachovnici jej zrušíte +thisPlayerUsesChessComputerAssistance=Tento uživatel hrává s pomocí počítače +opening=Zahájení +takeback=Vrácení tahu +proposeATakeback=Navrhnout vrácení tahu +takebackPropositionSent=Návrh vrácení tahu odeslán +takebackPropositionDeclined=Návrh vrácení tahu odmítnut +takebackPropositionAccepted=Návrh vrácení tahu přijat +takebackPropositionCanceled=Návrh vrácení tahu zrušen +yourOpponentProposesATakeback=Soupeř navrhuje vrácení tahu +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Šachy online zdarma. Hrajte šachy přímo ve Vašem prohlížeči, bez registrace, bez reklam, bez dalšího stahování. Hrajte proti počítači, kamarádům nebo náhodně vybraným soupeřům. diff --git a/conf/messages.cy b/conf/messages.cy new file mode 100644 index 0000000000000..655dc72d112ed --- /dev/null +++ b/conf/messages.cy @@ -0,0 +1,119 @@ +playWithAFriend=Chwarae efo ffrind +inviteAFriendToPlayWithYou=Gwahodd ffrind i chwarae gyda chi +playWithTheMachine=Chwarae gyda'r cyfrifiadur +challengeTheArtificialIntelligence=Herio'r cyfrifiadur +toInviteSomeoneToPlayGiveThisUrl=I wahodd rhywyn I chwarae, rhowch yr cyfeiriad hyn +gameOver=Gêm drosodd +waitingForOpponent=Aros am gwrthwynebydd +waiting=Aros +yourTurn=troi chi +aiNameLevelAiLevel=%s lefel %s +level=Lefel +toggleTheChat=Togl yr sgwrs +chat=Sgwrs +giveUp=Rhoi lan +resign=Ymddiswyddo +checkmate=Diwedd +stalemate=Gêm gyfartal +white=Gwyn +black=Du +createAGame=Creu gêm +random=Ar hap +noGameAvailableRightNowCreateOne=Ddim gemau are gael, creu un! +whiteIsVictorious=Gwyn wedi ennill +blackIsVictorious=Ddu wedi ennill +playANewGame=Chwarae gêm newydd +rematch=Chwarae eto +playWithTheSameOpponentAgain=Chwarae efo'r person hyn eto +newOpponent=Gwrthwynebydd newydd +playWithAnotherOpponent=Chwarae efo gwrthwynebydd arall +yourOpponentWantsToPlayANewGameWithYou=Mae'r gwrthwynebydd eishiau chwarae gêm newydd efoch chi +joinTheGame=Ymuno â gêm +youAreViewingThisGameAsASpectator=Rhydych yn edrych a'r gêm fel ymwelwyr +whitePlays=Gwyn yn chwarae +blackPlays=Ddu yn chwarae +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Mae'r chwaraewr wedi gadael yr gêm. Rhydych yn gallu gorfodi ymddiswyddiad, neu aros amdanni. +makeYourOpponentResign=Gorfodi'r gwrthwynebwr i ymddiswyddo +forceResignation=Gorfodi ymddiswyddiad +talkInChat=Siarad yn yr sgwrs +theFirstPersonToComeOnThisUrlWillPlayWithYou=Byddach yr person cyntaf i dod i'r cyfeiriad hon yn chawae efoch chi +whiteCreatesTheGame=Mae gwyn wedi creu'r gêm +blackCreatesTheGame=Mae ddu wedi creu'r gêm +whiteJoinsTheGame=Mae gwyn wedi ymuno a'r gêm +blackJoinsTheGame=Mae ddu wedi ymuno a'r gêm +whiteResigned=Gwyn wedi ymddiswyddo +blackResigned=Du wedi ymddiswyddo +whiteLeftTheGame=Gwyn wedi adael yr gêm +blackLeftTheGame=Du wedi adael yr gêm +contact=Cysylltwch +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Mae na ddim byd i'w weld ym. Os ydych yn meddwl for hyn yn gwall, rydych yn gallu danfon e-bost i %s +shareThisUrlToLetSpectatorsSeeTheGame=Cyfran yr cyfeiriad hyn i gadael ymwelwyr i gweld yr gêm +replayAndAnalyse=Ailchwarae ac dadansoddi +flipBoard=Troi'r bwrdd +threefoldRepetition=Ailadroddd triphlyg +claimADraw=Cais gêm cyfartal +offerDraw=Cynnig gêm cyfartal +draw=Gêm cyfartal +nbConnectedPlayers=%s chwaraewr cysylltiedig +talkAboutChessAndDiscussLichessFeaturesInTheForum=Siarad amdano chess ac trafod nodweddion lichess yn yr fforwm +seeTheGamesBeingPlayedInRealTime=Ymweld a'r gêmau sy'n cael ei chwarae mewn amser real +gamesBeingPlayedRightNow=Gêmau sy'n cael ei chwarae nawr +viewAllNbGames=Edrych ar yr gyd o %s gêmau +viewNbCheckmates=Edrych ar %s ennillion +viewInFullSize=Edrych yn maint llawn +logOut=Allgofnodi +signIn=Lofnodi mewn +signUp=Lofnodi lan +people=Pobol +games=Gêmau +forum=Fforwm +chessPlayers=Chwaraewr chess +first=Cyntaf +previous=Blaenorol +next=Nesaf +last=Olaf +minutesPerSide=Munudau pob ochr +variant=Amrywiad +timeControl=Reolaith Amser +start=Dechrau +username=Enw defnyddiwr +password=Cyfrinair +haveAnAccount=Ydynch yn cael ystyried? +allYouNeedIsAUsernameAndAPassword=Yr gyd rydych yn ei angen yw enw defnyddiwr ac cyfrinair +learnMoreAboutLichess=Ddysgu mwy amdano Lichess +rank=Safle +gamesPlayed=Gêmau chwaraeodd +declineInvitation=Troi lawr gwahoddiad +cancel=Ganslo +timeOut=Allan o amser +drawOfferSent=Anfonwyd cynnig cyfartal +drawOfferDeclined=Cynnig gyfartal wedi ei gwthod +drawOfferAccepted=Cynnig gyfartal wedi ei derbyn +drawOfferCanceled=Cynnig gyfartak wedi ei ganslo +yourOpponentOffersADraw=Eich gwrthwynebwr wedi gynnig gêm gyfartal +accept=Derbyn +decline=Gwrthod +playingRightNow=Chwarae nawr +abortGame=Erthylu gêm +gameAborted=Gêm wedi ei erthylu +standard=Normal +unlimited=Anghyfyngedig +mode=Modd +casual=Achlysurol +rated=Graddio +thisGameIsRated=Mae'r gêm hyn yn graddio +rematchOfferSent=Cynnig chwarae eto wedi cael ei anfon +rematchOfferAccepted=Cynnig chwarae eto wedi cael ei derbyn +play=Chwarae +inbox=Mewnflwch +chatRoom=Ystafell sgwrs +composeMessage=Creu Neges +sentMessages=Negesau anfonwyd +incrementInSeconds=Cynyddiad mewn eiliadau +freeOnlineChess=Chess arlein am ddim +spectators=Ymwelwyr +nbWins=%s yn ennill +nbLosses=%s yn colli +nbDraws=%s yn cyfartal +exportGames=Allforio +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Chess arlein am ddim. Chwarae chess nawr mewn rhyngwyneb glan. Ddim cofrestru, hysbysebion, ddim angen ategyn. Chwarae chess efo cyfrifiadur, ffrindiau neu person are hap. diff --git a/conf/messages.da b/conf/messages.da new file mode 100644 index 0000000000000..a3e29af05e8a9 --- /dev/null +++ b/conf/messages.da @@ -0,0 +1,130 @@ +playWithAFriend=Spil mod en ven +inviteAFriendToPlayWithYou=Inviter en ven til at spille med dig +playWithTheMachine=Spil mod computeren +challengeTheArtificialIntelligence=Udfordr computeren +toInviteSomeoneToPlayGiveThisUrl=Inviter en til at spille ved at give dem denne url +gameOver=Spillet er slut +waitingForOpponent=Venter på modstander +waiting=Venter +yourTurn=Din tur +aiNameLevelAiLevel=%s niveau %s +level=Niveau +toggleTheChat=Skjul/Vis chat +chat=Chat +giveUp=Giv op +resign=Trække sig +checkmate=Skakmat +stalemate=Uafgjort +white=Hvid +black=Sort +createAGame=Start et nyt spil +random=Tilfældig +noGameAvailableRightNowCreateOne=Ingen spil tilgængelige lige nu, lav et! +whiteIsVictorious=Hvid har vundet +blackIsVictorious=Sort har vundet +playANewGame=Start et nyt spil +rematch=Omkamp +playWithTheSameOpponentAgain=Spil mod samme modstander igen +newOpponent=Ny modstander +playWithAnotherOpponent=Spil mod en anden modstander +yourOpponentWantsToPlayANewGameWithYou=Din modspiller vil gerne spille et nyt spil +joinTheGame=Start spillet +youAreViewingThisGameAsASpectator=Du ser spillet som tilskuer +whitePlays=Hvid spiller +blackPlays=Sort spiller +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Din modspiller har forladt spillet. Du kan fremtvinge modstanderens fratræden eller vente +makeYourOpponentResign=Tving din modspiller til at fratræde +forceResignation=Tving fratræden +talkInChat=Snak i chat +theFirstPersonToComeOnThisUrlWillPlayWithYou=Den først person der bruger denne url vil blive din modstander +whiteCreatesTheGame=Hvid har oprettet spillet +blackCreatesTheGame=Sort har oprettet spillet +whiteJoinsTheGame=Hvid har tilsluttet spillet +blackJoinsTheGame=Sort har tilsluttet spillet +whiteResigned=Hvid har givet op +blackResigned=Sort har givet op +whiteLeftTheGame=Hvid har forladt spillet +blackLeftTheGame=Sort har forladt spillet +contact=Kontakt +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Der er ikke noget at se her. Hvis du tror dette er en fejl kan du sende en email til %s +shareThisUrlToLetSpectatorsSeeTheGame=Del denne url med tilskuere +replayAndAnalyse=Replay og analyser +viewGameStats=Se spil statistiker +flipBoard=Skift side +threefoldRepetition=Trefoldig gentagelse +claimADraw=Kræv remis +offerDraw=Tilbyd remis +draw=Uafgjort +nbConnectedPlayers=%s spillere online +talkAboutChessAndDiscussLichessFeaturesInTheForum=Tal om skak og diskuter lichess features på forumet +seeTheGamesBeingPlayedInRealTime=Se spil blive spillet i real time +gamesBeingPlayedRightNow=Spil der bliver spillet nu +viewAllNbGames=Se alle %s spil +viewNbCheckmates=Se %s skakmatter +viewInFullSize=Se i fuldskærm +logOut=Log ud +signIn=Log ind +signUp=Registrer +people=Folk +games=Spil +forum=Forum +chessPlayers=Skakspillere +first=Første +previous=Forrige +next=Næste +last=Sidste +minutesPerSide=Minutter per træk +variant=Variant +timeControl=Tidskontrol +start=Start +username=Brugernavn +password=Password +haveAnAccount=Har du en bruger? +allYouNeedIsAUsernameAndAPassword=Alt du behøver er et brugernavn og et password. +learnMoreAboutLichess=Lær mere om Lichess +rank=Rank +gamesPlayed=Antal spil spillet +declineInvitation=Afvis invitation +cancel=Cancel +timeOut=Tiden er udløbet +drawOfferSent=Remistilbud sendt +drawOfferDeclined=Remistilbud blev ikke accepteret +drawOfferAccepted=Remistilbud blev accepteret +drawOfferCanceled=Remistilbud blev trukket tilbage +yourOpponentOffersADraw=Din modstander tilbyder remis +accept=Accepter +decline=Afvis +playingRightNow=Spiller lige nu +abortGame=Afbryd spil +gameAborted=Spillet blev afbrudt +standard=Standard +unlimited=Ubegrænset +mode=Mode +casual=Normal +rated=Rated +thisGameIsRated=Dette spil er rated +rematchOfferSent=Tilbud om omkamp sendt +rematchOfferAccepted=Tilbud om omkamp accepteret +cancelRematchOffer=Nægt omkamp tilbud +play=Spil +inbox=Indbakke +chatRoom=Chatrum +composeMessage=Skriv besked +sentMessages=Sendte beskeder +incrementInSeconds=Tilføjelser pr. sekund +freeOnlineChess=Gratis Online Skak +spectators=Tilskuere +nbWins=%s sejre +nbLosses=%s tab +nbDraws=%s uafgjort +exportGames=Eksporter spil +color=Farve +eloRange=Elo interval +giveNbSeconds=Giv %s sekunder +searchAPlayer=Søg efter en spiller +whoIsOnline=Hvem er online +allPlayers=Alle spillere +namedPlayers=Navngivne spillere +premoveEnabledClickAnywhereToCancel=Forhåndstræk aktiveret - Klik hvor som helst for at annullere +thisPlayerUsesChessComputerAssistance=Denne spiller bruger skakcomputer assistance +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Gratis online skak spil. Spil skak med det samme i et rent design. Ingen registration, ingen reklamer, ingen plugins nødvendige. Spil skak mod computeren, venner eller tilfældige modstandere. diff --git a/conf/messages.de b/conf/messages.de new file mode 100644 index 0000000000000..9634fbcfd02ca --- /dev/null +++ b/conf/messages.de @@ -0,0 +1,138 @@ +playWithAFriend=Mit einem Freund spielen +inviteAFriendToPlayWithYou=Einen Freund zum Spiel einladen +playWithTheMachine=Gegen den Computer spielen +challengeTheArtificialIntelligence=Fordere die künstliche Intelligenz heraus +toInviteSomeoneToPlayGiveThisUrl=Versende diese Adresse, um jemanden zum Spiel einzuladen +gameOver=Das Spiel ist vorbei +waitingForOpponent=Auf Gegner warten +waiting=Bitte warten +yourTurn=Du bist am Zug! +aiNameLevelAiLevel=%s Level %s +level=Spielstärke +toggleTheChat=Chat ein- oder ausschalten +chat=Chat +giveUp=Das Spiel aufgeben +resign=Aufgeben +checkmate=Schachmatt +stalemate=Patt +white=Weiß +black=Schwarz +createAGame=Erstelle eine Partie +random=Zufällig +noGameAvailableRightNowCreateOne=Gerade keine Partie vorhanden, erstelle eine! +whiteIsVictorious=Weiß hat gewonnen +blackIsVictorious=Schwarz hat gewonnen +playANewGame=Eine neue Partie starten +rematch=Revanche +playWithTheSameOpponentAgain=Erneut gegen denselben Gegner spielen +newOpponent=Neuer Gegner +playWithAnotherOpponent=Gegen einen anderen Gegner spielen +yourOpponentWantsToPlayANewGameWithYou=Dein Gegner fordert eine Revanche +joinTheGame=Der Partie beitreten +youAreViewingThisGameAsASpectator=Du betrachtest die Partie als Zuschauer +whitePlays=Weiß am Zug +blackPlays=Schwarz am Zug +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Dein Gegner hat die Partie verlassen. Du kannst eine Aufgabe erzwingen oder auf ihn warten. +makeYourOpponentResign=Deinen Gegner zur Aufgabe zwingen +forceResignation=Aufgabe erzwingen +talkInChat=Chatten +theFirstPersonToComeOnThisUrlWillPlayWithYou=Der erste, der diese Adresse anklickt, wird dein Gegner. +whiteCreatesTheGame=Weiß eröffnet die Partie +blackCreatesTheGame=Schwarz eröffnet die Partie +whiteJoinsTheGame=Weiß tritt der Partie bei +blackJoinsTheGame=Schwarz tritt der Partie bei +whiteResigned=Weiß hat aufgegeben +blackResigned=Schwarz hat aufgegeben +whiteLeftTheGame=Weiß hat die Partie verlassen +blackLeftTheGame=Schwarz hat die Partie verlassen +contact=Kontakt +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Hier gibt es nichts zu sehen. Wenn du meinst, dass es sich um einen Fehler handelt, sende bitte eine E-Mail an %s +shareThisUrlToLetSpectatorsSeeTheGame=Verschicke diese Adresse und Zuschauer können das Spiel ansehen. +replayAndAnalyse=Die Partie analysieren +viewGameStats=Spiel Statistiken anzeigen +flipBoard=Farbe wechseln +threefoldRepetition=Dreifache Stellungswiederholung +claimADraw=Remis anbieten +offerDraw=Remis anbieten +draw=Remis +nbConnectedPlayers=%s Spieler verbunden +talkAboutChessAndDiscussLichessFeaturesInTheForum=Über Schach reden und im Forum über Lichess diskutieren +seeTheGamesBeingPlayedInRealTime=Aktuelle Spiele anzeigen +gamesBeingPlayedRightNow=Laufende Partien +viewAllNbGames=Alle %s Partien anzeigen +viewNbCheckmates=%s Spiele mit Schachmatt anzeigen +viewInFullSize=In voller Größe anzeigen +logOut=Abmelden +signIn=Anmelden +signUp=Registrieren +people=Personen +games=Spiele +forum=Forum +chessPlayers=Schachspieler +first=Erster +previous=Vorheriger +next=Nächster +last=Letzter +minutesPerSide=Minuten pro Seite +variant=Variante +timeControl=Zeit-Kontrolle +start=Start +username=Benutzername +password=Passwort +haveAnAccount=Schon registriert? +allYouNeedIsAUsernameAndAPassword=Du brauchst nur Benutzername und Passwort. +learnMoreAboutLichess=Mehr über Lichess +rank=Rang +gamesPlayed=Partien gespielt +declineInvitation=Einladung ablehnen +cancel=Abbrechen +timeOut=Die Zeit ist abgelaufen +drawOfferSent=Remisangebot gesendet +drawOfferDeclined=Remisangebot abgelehnt +drawOfferAccepted=Remisangebot angenommen +drawOfferCanceled=Remisangebot abgebrochen +yourOpponentOffersADraw=Dein Gegner bietet ein Remis an +accept=Akzeptieren +decline=Ablehnen +playingRightNow=Aktuelle Spiele +abortGame=Spiel abbrechen +gameAborted=Spiel abgebrochen +standard=Standard +unlimited=Unbegrenzt +mode=Modus +casual=Ungewertetes Spiel +rated=Gewertetes Spiel +thisGameIsRated=Dieses Spiel ist gewertet +rematchOfferSent=Angebot zur Revanche wurde gesendet +rematchOfferAccepted=Angebot zur Revanche akzeptiert +cancelRematchOffer=Angebot zur Revanche zurücknehmen +play=Spiel beginnen +inbox=Briefkasten +chatRoom=Chat-Room +composeMessage=Mitteilung verfassen +sentMessages=Gesendete Nachrichten +incrementInSeconds=zusätzliche Sekunden pro Zug +freeOnlineChess=Kostenloses Online-Schach +spectators=Zuschauer: +nbWins=%s Siege +nbLosses=%s Niederlagen +nbDraws=%s Unentschieden +exportGames=Spiele exportieren +color=Farbe +eloRange=Elo-Bereich +giveNbSeconds=%s Sekunden geben +searchAPlayer=Spieler suchen +whoIsOnline=Wer ist online +allPlayers=Alle Spieler +namedPlayers=Spieler mit Namen +premoveEnabledClickAnywhereToCancel=Vorrauszug aktiv - Um zu annulieren irgendwo klicken. +thisPlayerUsesChessComputerAssistance=Dieser Spieler benutzt einen Schachcomputer als Hilfe. +opening=Eröffnung +takeback=Zug zurückziehen +proposeATakeback=Anbieten einen Zug zurückzuziehen +takebackPropositionSent=Vorschlag einen Zug zurückzuziehen gesendet +takebackPropositionDeclined=Vorschlag einen Zug zurückzuziehen abgelehnt +takebackPropositionAccepted=Vorschlag einen Zug zurückzuziehen angenommen +takebackPropositionCanceled=Vorschlag einen Zug zurückzuziehen abgebrochen +yourOpponentProposesATakeback=Dein Gegner schlägt vor einen Zug zurückzuziehen +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Kostenloses Online-Schach. Spiele Schach mit einem simplen und sauberen Interface! Keine Registrierung, keine Werbung, kein Plugin nötig. Spiele Schach mit dem Computer, Freunden oder zufällige Gegner. diff --git a/conf/messages.el b/conf/messages.el new file mode 100644 index 0000000000000..a9c0d9f5b9999 --- /dev/null +++ b/conf/messages.el @@ -0,0 +1,130 @@ +playWithAFriend=Παίξτε με ένα φίλο +inviteAFriendToPlayWithYou=Προσκαλέστε ένα φίλο να παίξει μαζί σας +playWithTheMachine=Παίξτε με τον υπολογιστή +challengeTheArtificialIntelligence=Προκαλέστε τη τεχνητή νοημοσύνη +toInviteSomeoneToPlayGiveThisUrl=Για να προσκαλέσετε κάποιον να παίξει, στείλτε τους αυτήν τη διεύθυνση +gameOver=Τέλος παιχνιδιού +waitingForOpponent=Αναμονή για αντίπαλο +waiting=Αναμονή +yourTurn=Η σειρά σας +aiNameLevelAiLevel=%s επίπεδο %s +level=Επίπεδο +toggleTheChat=Εναλλαγή της συνομιλίας +chat=Συνομιλία +giveUp=Εγκαταλείψετε +resign=Παραιτηθείτε +checkmate=Ματ +stalemate=Πατ +white=Λευκά +black=Μαύρα +createAGame=Δημιουργία παιχνιδιού +random=Οποιαδήποτε +noGameAvailableRightNowCreateOne=Δεν ύπαρχει κανένα διαθέσιμο παιχνίδι αυτήν την στιγμή, δημιουργήστε ένα! +whiteIsVictorious=Τα λευκά νίκησαν +blackIsVictorious=Τα μαύρα νίκησαν +playANewGame=Δημιουργήστε νέο παιχνίδι +rematch=Επανάληψη παιχνιδιού +playWithTheSameOpponentAgain=Παίξτε με τον ίδιο αντίπαλο +newOpponent=Νέος αντίπαλος +playWithAnotherOpponent=Παίξε με έναν άλλο αντίπαλο +yourOpponentWantsToPlayANewGameWithYou=Ο αντίπαλός σας θέλει να παίξει ένα νέο παιχνίδι μαζί σας +joinTheGame=Λάβετε μέρος στο παιχνίδι +youAreViewingThisGameAsASpectator=Παρακολουθείτε το παιχνίδι ως θεατής +whitePlays=Παίζουν τα λευκά +blackPlays=Παίζουν τα μαύρα +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Ο άλλος παίκτης έφυγε από το παιχνίδι. Μπορείτε να απαιτήσετε παραίτηση, ή να τον περιμένετε +makeYourOpponentResign=Κάνετε τον αντίπαλό σας να παραιτηθεί +forceResignation=Αναγκάστε παραίτηση +talkInChat=Μιλήστε στη συνομιλία +theFirstPersonToComeOnThisUrlWillPlayWithYou=Ο πρώτος που θα έρθει σε αυτή τη διεύθυνση θα παίξει μαζί σας +whiteCreatesTheGame=Τα λευκά δημιούργησαν το παιχνίδι +blackCreatesTheGame=Τα μαύρα δημιουργούν το παιχνίδι +whiteJoinsTheGame=Τα λευκά έλαβαν μέρος στο παιχνίδι +blackJoinsTheGame=Τα μαύρα έλαβαν μέρος στο παιχνίδι +whiteResigned=Τα λευκά παραιτήθηκαν +blackResigned=Τα μαύρα παραιτήθηκαν +whiteLeftTheGame=Τα λευκά έφυγαν από το παιχνίδι +blackLeftTheGame=Τα μαύρα έφυγαν από το παιχνίδι +contact=Επικοινωνία +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Δεν υπάρχει κάτι να δείτε εδώ. Εάν πιστεύετε ότι είναι σφάλμα, μπορείτε να στήλετε ένα μήνυμα ηλεκτρονικού ταχυδρομείου στο %s +shareThisUrlToLetSpectatorsSeeTheGame=Στείλτε αυτήν τη διεύθυνση και επιτρέψτε θεατές να δουν το παιχνίδι +replayAndAnalyse=Ξαναπαίξτε και ανελύστε +viewGameStats=Δες στατιστικά στοιχεία του παιχνιδιού +flipBoard=Γύρισμα σκακιέρας +threefoldRepetition=Τρίτη επανάληψη κίνησης +claimADraw=Απαιτήστε ισοπαλία +offerDraw=Προσφέρετε ισοπαλία +draw=Ισοπαλία +nbConnectedPlayers=%s συνδεδεμένοι παίχτες +talkAboutChessAndDiscussLichessFeaturesInTheForum=Μιλήστε για σκάκι και συζήτησε τα στοιχεία του lichess στο φόρουμ +seeTheGamesBeingPlayedInRealTime=Δείτε τα παιχνίδια που παίζονται σε πραγματικό χρόνο +gamesBeingPlayedRightNow=Παιχνίδια που παίζονται τώρα +viewAllNbGames=Δείτε όλα τα %s παιχνίδια +viewNbCheckmates=Δείτε %s ματ +viewInFullSize=Δείτε σε πλήρες μέγεθος +logOut=Έξοδος +signIn=Είσοδος +signUp=Εγγραφή +people=Άτομα +games=Παιχνίδια +forum=Φόρουμ +chessPlayers=Σκακιστές +first=Πρώτη +previous=Προηγούμενη +next=Επόμενη +last=Τελευταία +minutesPerSide=Λεπτά ανά πλευρά +variant=Εκδοχή +timeControl=Χρόνος +start=Έναρξη +username=Όνομα χρήστη +password=Κωδικός +haveAnAccount=Έχετε λογαριασμό; +allYouNeedIsAUsernameAndAPassword=Τα μόνα που χρειαζόσαστε είναι ένα όνομα χρήστη και ένα λογαριασμό. +learnMoreAboutLichess=Μάθετε περισσότερα για το lichess +rank=Επίπεδο +gamesPlayed=Παιγμένα παιχνίδια +declineInvitation=Αρνηθείτε την πρόσκληση +cancel=Ακύρωση +timeOut=Τέλος χρόνου +drawOfferSent=Πρόταση ισοπαλίας εστάλη +drawOfferDeclined=Πρόταση ισοπαλίας αρνήθηκε +drawOfferAccepted=Πρόταση ισοπαλίας αποδεκτή +drawOfferCanceled=Ακύρωση πρότασης ισοπαλίας +yourOpponentOffersADraw=Ο αντίπαλος σας προτείνει ισοπαλία +accept=Αποδοχή +decline=Άρνηση +playingRightNow=Παιχνίδια σε εξέλιξη τώρα +abortGame=Εγκατάλειψη παιχνιδιού +gameAborted=Παιχνίδι εγκαταλήφθη +standard=Κανονικό +unlimited=Απεριόριστα +mode=Ρύθμιση +casual=Φιλικό +rated=Βαθμολογημένο +thisGameIsRated=Το παιχνίδι βαθμολογείται +rematchOfferSent=Πρόταση επανάληψης εστάλη +rematchOfferAccepted=Πρόταση επανάληψης αποδεκτή +cancelRematchOffer=μη αποδεκτη προσφορα επαναληψης +play=Παίξτε +inbox=Εισερχόρμενα +chatRoom=Ζωντανή συζήτηση +composeMessage=Σύνθεση μηνύματος +sentMessages=Απεσταλμένα μηνύματα +incrementInSeconds=Προσαύξηση σε δευτερόλεπτα +freeOnlineChess=Δωρεάν Διαδικτυακό Σκάκι +spectators=Ακροατές: +nbWins=%s νίκες +nbLosses=%s ήττες +nbDraws=%s ισοπαλίες +exportGames=Εξαγωγή παιχνιδιών +color=Χρώμα +eloRange=Εμβέλεια elo +giveNbSeconds=Δώσε %s δευτερόλεπτα +searchAPlayer=Ψάξε έναν παίκτη +whoIsOnline=Ποιός είναι online +allPlayers=Όλοι οι παίκτες +namedPlayers=Ονομαζμένοι παίκτες +premoveEnabledClickAnywhereToCancel=Προεπιλογή κίνησης ενεργοποιημένη - κλίκ οπουδήποτε για ακύρωση +thisPlayerUsesChessComputerAssistance=Αυτός ο παίκτης χρησιμοποιεί βοήθεια υπολογιστή για σκάκι +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Δωρεάν διαδικτυακό παιχνίδι Σκακιού. Παίξτε σκάκι τώρα σε καθαρό γραφικό περιβάλλον. Χωρίς εγγραφές, χωρίς διαφημίσεις, χωρίς πρόσθετα. Παίξτε Σκάκι με τον υπολογιστή, με φίλους ή τυχαίους αντιπάλους. diff --git a/conf/messages.eo b/conf/messages.eo new file mode 100644 index 0000000000000..bf087686eb40c --- /dev/null +++ b/conf/messages.eo @@ -0,0 +1,130 @@ +playWithAFriend=Ludi kun amiko +inviteAFriendToPlayWithYou=Inviti amikon por ludi kun vi +playWithTheMachine=Ludi kontraŭ la maŝino +challengeTheArtificialIntelligence=Defii la artefaritan inteligenton +toInviteSomeoneToPlayGiveThisUrl=Por inviti iun por ludi, donu ĉi tiun ligilon +gameOver=Finiĝis +waitingForOpponent=Atendante kontraŭulon +waiting=Atendante +yourTurn=Via vico +aiNameLevelAiLevel=%s nivelo %s +level=Nivelo +toggleTheChat=Ŝanĝi videblecon de la babilejo +chat=Babilejo +giveUp=Ĉesi +resign=Rezigni +checkmate=Ŝakmato +stalemate=Pato +white=Blanko +black=Nigro +createAGame=Krei ludon +random=Hazarde +noGameAvailableRightNowCreateOne=Ne haveblas ludo ĝuste nun, sed vi povas krei unu! +whiteIsVictorious=Blanko venkas +blackIsVictorious=Nigro venkas +playANewGame=Ludi novan ludon +rematch=Reludi +playWithTheSameOpponentAgain=Denove ludi kun la sama kontraŭulo +newOpponent=Nova kontraŭulo +playWithAnotherOpponent=Ludi kontraŭ alia kontraŭulo +yourOpponentWantsToPlayANewGameWithYou=Via kontraŭulo volas ludi denove kun vi +joinTheGame=Aliĝi al la ludo +youAreViewingThisGameAsASpectator=Vi vidas ĉi tiun ludon kiel spektanto +whitePlays=Blanko ludas +blackPlays=Nigro ludas +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=La alia ludanto forlasis la ludon. Vi povas igi resignon aŭ atendi lin. +makeYourOpponentResign=Resignigi vian kontraŭulon +forceResignation=Igi rezignon +talkInChat=Ektajpu por babili... +theFirstPersonToComeOnThisUrlWillPlayWithYou=La unua persono kiu alvenos ĉe ĉi tiu ligilo ludos kun vi. +whiteCreatesTheGame=Blanko kreis la ludon +blackCreatesTheGame=Nigro kreis la ludon +whiteJoinsTheGame=Blanko aliĝas al la ludo +blackJoinsTheGame=Nigro aliĝas al la ludo +whiteResigned=Blanko rezignis +blackResigned=Nigro rezignis +whiteLeftTheGame=Blanko forlasis la ludon +blackLeftTheGame=Nigro forlasis la ludon +contact=Kontakto +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Nenio videblas ĉi tie. Se vi pensas ke tio estas erara konduto, vi povas sendi retpoŝton al %s +shareThisUrlToLetSpectatorsSeeTheGame=Kunhavigu ĉi tiun ligilon por allasi spektantojn en la ludon +replayAndAnalyse=Reludi kaj analizi +viewGameStats=Vidi ludajn statistikojn +flipBoard=Rotacii tabulon +threefoldRepetition=Triobla ripeto +claimADraw=Aserti egaliĝon +offerDraw=Oferti egaliĝon +draw=Egaliĝo +nbConnectedPlayers=%s konektitaj ludantoj +talkAboutChessAndDiscussLichessFeaturesInTheForum=Paroli pri ŝako kaj diskuti eblojn de lichess en la forumo +seeTheGamesBeingPlayedInRealTime=Vidi ludojn ludatajn realtempe +gamesBeingPlayedRightNow=Nun ludataj ludoj +viewAllNbGames=Vidi ĉiujn %s ludojn +viewNbCheckmates=Vidi %s ŝakmatojn +viewInFullSize=Vidi plengrande +logOut=Elsaluti +signIn=Ensaluti +signUp=Aliĝi +people=Homoj +games=Ludoj +forum=Forumo +chessPlayers=Ŝakludantoj +first=Unuaj +previous=Antaŭaj +next=Sekvaj +last=Lastaj +minutesPerSide=Minutoj por ĉiu flanko +variant=Variaĵo +timeControl=Temporegado +start=Komenci +username=Uzantnomo +password=Pasvorto +haveAnAccount=Ĉu vi havas konton? +allYouNeedIsAUsernameAndAPassword=Vi nur bezonas uzantnomon kaj pasvorton. +learnMoreAboutLichess=Lerni pli pri Lichess +rank=Ranko +gamesPlayed=Luditaj ludoj +declineInvitation=Malakcepti inviton +cancel=Nuligi +timeOut=Tempo finiĝis +drawOfferSent=Oferto pri egaliĝo sendiĝis +drawOfferDeclined=Oferto pri egaliĝo malakceptiĝis +drawOfferAccepted=Oferto pri egaliĝo akceptiĝis +drawOfferCanceled=Oferto pri egaliĝo nuliĝis +yourOpponentOffersADraw=Via kontraŭulo ofertas egaliĝon +accept=Akcepti +decline=Malakcepti +playingRightNow=Ludantaj nun +abortGame=Interrompi ludon +gameAborted=Ludo interrompita +standard=Normala +unlimited=Senlime +mode=Moduso +casual=Distra +rated=Rankumita +thisGameIsRated=Ĉi tiu ludo estas rankumita +rematchOfferSent=Rematĉa oferto sendiĝis +rematchOfferAccepted=Rematĉa oferto akceptiĝis +cancelRematchOffer=Nuligi rematĉan peton +play=Ludi +inbox=Enirkesto +chatRoom=Babilejo +composeMessage=Sendi mesaĝo +sentMessages=Senditajn mesaĝojn +incrementInSeconds=Pliigo en sekundoj +freeOnlineChess=Ŝako senpage interrete +spectators=Spektantoj: +nbWins=%s venkas +nbLosses=%s malvenkas +nbDraws=%s egalludas +exportGames=Eksporti ludojn +color=Koloro +eloRange=Poentoj laŭ Elo +giveNbSeconds=Doni %s sekundojn +searchAPlayer=Serĉi ludanton +whoIsOnline=Kiu estas enrete +allPlayers=Ĉiuj ludantoj +namedPlayers=Ludantoj kun nomo +premoveEnabledClickAnywhereToCancel=Antaŭmovo ebligita - Klaki ajnaloke por nuligi +thisPlayerUsesChessComputerAssistance=Ĉi tiu ludanto uzas komputilan asiston en la ludo +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Senpaga interreta ŝakludo. Ludu ŝakon nun en simpla interfaco. Sen registriĝo, sen reklamoj, sen neceso por aldonaĵo. Ludu ŝakon kun la komputilo, amikoj aŭ hazardaj kontraŭuloj. diff --git a/conf/messages.es b/conf/messages.es new file mode 100644 index 0000000000000..addd8a0b70ef8 --- /dev/null +++ b/conf/messages.es @@ -0,0 +1,138 @@ +playWithAFriend=Juega con un amigo +inviteAFriendToPlayWithYou=Invita a un amigo a jugar contigo +playWithTheMachine=Juega contra la máquina +challengeTheArtificialIntelligence=Desafía a la inteligencia artificial +toInviteSomeoneToPlayGiveThisUrl=Para invitar a alguien a jugar, dale esta dirección +gameOver=Fin del Juego +waitingForOpponent=Esperando a tu oponente +waiting=Esperando +yourTurn=Tu turno +aiNameLevelAiLevel=%s nivel %s +level=Nivel +toggleTheChat=Activar el chat +chat=Chat +giveUp=Abandonar +resign=Renunciar +checkmate=Jaque Mate +stalemate=Ahogado +white=Blancas +black=Negras +createAGame=Crear partida +random=Aleatorio +noGameAvailableRightNowCreateOne=No hay partidas disponibles ahora mismo, ¡crea una! +whiteIsVictorious=Las Blancas ganan +blackIsVictorious=Las Negras ganan +playANewGame=Iniciar un nuevo juego +rematch=Revancha +playWithTheSameOpponentAgain=Jugar contra el mismo oponente +newOpponent=Nuevo oponente +playWithAnotherOpponent=Juega con otro oponente +yourOpponentWantsToPlayANewGameWithYou=Tu oponente quiere jugar contra ti de nuevo +joinTheGame=Unirse a la partida +youAreViewingThisGameAsASpectator=Estás viendo esta partida como espectador +whitePlays=Juegan Blancas +blackPlays=Juegan Negras +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=El otro jugador ha abandonado la partida. Puedes forzar su renuncia o esperarlo. +makeYourOpponentResign=Hacer que tu oponente renuncie +forceResignation=Forzar su renuncia +talkInChat=Hablar en el chat +theFirstPersonToComeOnThisUrlWillPlayWithYou=La primera persona que entre en esta dirección jugará contigo +whiteCreatesTheGame=Blancas ha creado la partida +blackCreatesTheGame=Negras ha creado la partida +whiteJoinsTheGame=Blancas se ha unido a la partida +blackJoinsTheGame=Negras se ha unido a la partida +whiteResigned=Blancas se ha rendido +blackResigned=Negras se ha rendido +whiteLeftTheGame=Blancas ha dejado la partida +blackLeftTheGame=Negras ha dejado la partida +contact=Contacto +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=No hay nada que ver aquí. Si piensas que es un fallo puedes enviar un correo electrónico a %s +shareThisUrlToLetSpectatorsSeeTheGame=Comparte esta URL para permitir que espectadores vean la partida +replayAndAnalyse=Repetición y análisis +viewGameStats=Ver estadísticas del juego +flipBoard=Girar el tablero +threefoldRepetition=Repetición de jugadas +claimADraw=Pedir tablas +offerDraw=Ofrecer tablas +draw=Tablas +nbConnectedPlayers=%s jugadores conectados +talkAboutChessAndDiscussLichessFeaturesInTheForum=Hablar sobre ajedrez y discutir características de lichess en el foro +seeTheGamesBeingPlayedInRealTime=Ver las partidas que se están jugando en tiempo real +gamesBeingPlayedRightNow=Partidas jugándose ahora mismo +viewAllNbGames=Ver todas las %s partidas +viewNbCheckmates=Ver todos los %s mates +viewInFullSize=Ver a tamaño real +logOut=Cerrar sesión +signIn=Iniciar sesión +signUp=Regístrate +people=Gente +games=Partidas +forum=Foro +chessPlayers=Jugadores +first=Primero +previous=Anterior +next=Siguiente +last=Último +minutesPerSide=Minutos por lado +variant=Variante +timeControl=Control de tiempo +start=Empezar +username=Usuario +password=Contraseña +haveAnAccount=¿Tienes una cuenta? +allYouNeedIsAUsernameAndAPassword=Todo lo que necesitas es un nombre de usuario y una contraseña. +learnMoreAboutLichess=Aprender más sobre Lichess +rank=Posición +gamesPlayed=Partidas jugadas +declineInvitation=Rechazar invitación +cancel=Cancelar +timeOut=Tiempo agotado +drawOfferSent=Oferta de tablas enviada +drawOfferDeclined=Oferta de tablas rechazada +drawOfferAccepted=Oferta de tablas aceptada +drawOfferCanceled=Oferta de tablas cancelada +yourOpponentOffersADraw=Tu oponente ofrece tablas +accept=Aceptar +decline=Rechazar +playingRightNow=Jugando ahora mismo +abortGame=Cancelar partida +gameAborted=Partida cancelada +standard=Estándar +unlimited=Sin límite +mode=Modo +casual=Casual +rated=Puntuable +thisGameIsRated=Partida por puntos +rematchOfferSent=Petición de revancha enviada +rematchOfferAccepted=Revancha aceptada +cancelRematchOffer=Rechazar oferta de revancha. +play=Juego +inbox=Buzón de entrada +chatRoom=Sala de chat +composeMessage=Escribir mensaje +sentMessages=Mensajes enviados +incrementInSeconds=Incremento de tiempo en segundos +freeOnlineChess=Ajedrez en línea gratis +spectators=Espectadores: +nbWins=%s victorias +nbLosses=%s derrotas +nbDraws=%s tablas +exportGames=Exportar partidas +color=Color +eloRange=puntuación ELO +giveNbSeconds=Dar %s segundos +searchAPlayer=Buscar un jugador +whoIsOnline=Quién esta en línea +allPlayers=Todos los jugadores +namedPlayers=Jugadores con nombre +premoveEnabledClickAnywhereToCancel=Premovimiento activado - Clic en cualquier lugar para cancelarlo +thisPlayerUsesChessComputerAssistance=Este jugador usa la ayuda de la máquina +opening=apertura +takeback=Deshacer Jugada +proposeATakeback=Propón deshacer jugada +takebackPropositionSent=Propuesta de deshacer enviada +takebackPropositionDeclined=Propuesta de deshacer rechazada +takebackPropositionAccepted=Propuesta de deshacer aceptada +takebackPropositionCanceled=Propuesta de deshacer cancelada +yourOpponentProposesATakeback=Tu oponente propone deshacer jugada. +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Ajedrez en línea gratis. Juega al ajedrez con una interfaz limpia. Sin registrarse, sin anuncios, sin requerimiento de plugins. Juega al ajedrez contra el ordenador, amigos u oponentes aleatorios. diff --git a/conf/messages.et b/conf/messages.et new file mode 100644 index 0000000000000..2b8de7930c9f4 --- /dev/null +++ b/conf/messages.et @@ -0,0 +1,99 @@ +playWithAFriend=Mängi sõbraga +inviteAFriendToPlayWithYou=Kutsu sõber endaga mängima +playWithTheMachine=Mängi arvuti vastu +challengeTheArtificialIntelligence=Esita väljakutse tehisintellektile +toInviteSomeoneToPlayGiveThisUrl=Et kutsuda kedagi mängima, anna talle see URL +gameOver=Mäng läbi +waitingForOpponent=Ootan vastast +waiting=Ootan +yourTurn=Sinu käik +aiNameLevelAiLevel=tase +level=Tase +toggleTheChat=Kasuta chatti +chat=Chat +giveUp=Anna alla +resign=Loobu +checkmate=Šahh-matt +stalemate=Surnud seis +white=Valge +black=Must +createAGame=Luua mäng +random=Suvaline +whiteIsVictorious=Male jumalad on naeratanud valgele mängijale +blackIsVictorious=Male jumalad on naeratanud mustale mängijale +playANewGame=Mängi uut mängu +rematch=Rematš +playWithTheSameOpponentAgain=Mängi uuesti sama vastasega +newOpponent=Uus vastane +playWithAnotherOpponent=Mängi teise vastasega +yourOpponentWantsToPlayANewGameWithYou=Sinu vastane soovib mängida uut mägu sinuga +joinTheGame=Liitu mänguga +youAreViewingThisGameAsASpectator=Sa vaatad seda mängu pealt +whitePlays=Valge mängib +blackPlays=Must mängib +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Peab tõdema, et ta on lahkunud. Sa võid sundida talle kaotuse või oodata teda. +makeYourOpponentResign=Pane enda vastane loobuma +forceResignation=Sundloobumine +talkInChat=Räägi vastasega +theFirstPersonToComeOnThisUrlWillPlayWithYou=Esimene inimene kes selle URLi peale klikkab, mängib sinuga. +whiteCreatesTheGame=Valge loob mängu +blackCreatesTheGame=Must loob mängu +whiteJoinsTheGame=Õnnepäev! Valge liitus mänguga +blackJoinsTheGame=Õnnepäev! Must liitus mänguga +whiteResigned=Valge loobus, ta on toonud häbi enda esivanematele. +blackResigned=Must loobus, ta on toonud häbi enda esivanematele. +whiteLeftTheGame=Valge on häbematult mängust lahkunud, küll ta veel saab. +blackLeftTheGame=Must on häbematult mängust lahkunud, küll ta veel saab. +contact=Kontakt +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Siin pole midagi näha. Kui arvad, et see on bug, siis saada kiri meile - %s +shareThisUrlToLetSpectatorsSeeTheGame=Jaga seda linki, et lasta pealtvaatajatel seda mängu näha +replayAndAnalyse=Taasesita mäng ning analüüsi +flipBoard=Pööra laud ümber. +claimADraw=Nõustu viigiga +offerDraw=Paku viiki +draw=Viik +nbConnectedPlayers=mängijat +talkAboutChessAndDiscussLichessFeaturesInTheForum=Räägi malest ja aruta lichess-i iseärasustest foorumites +seeTheGamesBeingPlayedInRealTime=Vaata hetkel käimasolevaid mänge +gamesBeingPlayedRightNow=Hetkel käimasolevad mängud +viewAllNbGames=Vaata kõiki %s mänge +viewNbCheckmates=Vaata %s sahh-matte +viewInFullSize=Vaata täisekraanil +logOut=Logi välja +signIn=Logi sisse +signUp=Registreeri +people=Inimesed +games=Mängud +forum=Foorum +chessPlayers=Malemängijad +first=Esimene +previous=Eelmine +next=Järgmine +last=Viimane +minutesPerSide=Minutit poole kohta +variant=Valik +timeControl=Aja kontroll +start=Start +username=Kasutajanimi +password=Parool +haveAnAccount=Kas sul on kasutaja? +allYouNeedIsAUsernameAndAPassword=Sul on vaid vaja kasutajanime ja parooli. +learnMoreAboutLichess=Uuri rohkem Lichessi kohta +rank=Rank +gamesPlayed=Mänge mängitud +declineInvitation=Keeldu kutsest +cancel=Katkesta +timeOut=Aeg maha +drawOfferSent=Viigi pakkumine saadetud +drawOfferDeclined=Viigi pakkumine tagasi lükatud +drawOfferAccepted=Viigi pakkumine vastu võetud +drawOfferCanceled=Viigi pakkumine tühistatud +yourOpponentOffersADraw=Su vastane pakub viiki +accept=Nõustu +decline=Keeldu +playingRightNow=Hetkel +abortGame=Katkesta mäng +gameAborted=Mäng katkestatud +standard=Standard +unlimited=Piiramatu +casual=Tavaline diff --git a/conf/messages.fa b/conf/messages.fa new file mode 100644 index 0000000000000..0d1e113ede947 --- /dev/null +++ b/conf/messages.fa @@ -0,0 +1,119 @@ +playWithAFriend=بازی با یک دوست +inviteAFriendToPlayWithYou=دعوت از یک دوست برای بازی +playWithTheMachine=بازی با سیستم +challengeTheArtificialIntelligence=مسابقه هوش مصنوعی +toInviteSomeoneToPlayGiveThisUrl=دعوت کردن برای بازی .با استفاده از این لینک +gameOver=بازی تمام شد +waitingForOpponent=منتظر حریف +waiting=انتظار +yourTurn=نوبت توست +aiNameLevelAiLevel=%s مرحله%s +level=مرحله +toggleTheChat=ضامن گپ +chat=گپ +giveUp=تسلیم شدن +resign=منصرف شدن +checkmate=مات +stalemate=پات +white=سپید +black=سیاه +createAGame=ساخت یک بازی +random=تصادفی +noGameAvailableRightNowCreateOne=در حال حاضر بازی در دسترس وجود ندارد، یکی ایجاد کنید! +whiteIsVictorious=بازیکن سپید برنده است +blackIsVictorious=بازیکن سیاه برنده است +playANewGame=بازی جدیدی را شروع کنید +rematch=دوباره +playWithTheSameOpponentAgain=بازی با همان حریف +newOpponent=حریف جدید +playWithAnotherOpponent=بازی با حریفان دیگر +yourOpponentWantsToPlayANewGameWithYou=حریف شما می خواهد که دوباره با شما بازی کند +joinTheGame=به بازی بپیوندید +youAreViewingThisGameAsASpectator=شما در حال مشاهده این بازی به عنوان تماشاگر می باشید +whitePlays=بازی بازیکن سپید +blackPlays=بازی بازیکن سیاه +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=حریف مقابل شما بازی را ترک کرد شما می توانید با قدرت برنده اعلام شوید یا منتظر او بمانید +makeYourOpponentResign=کناره گیری کنید +forceResignation=حریف شما کناره گیری کرد +talkInChat=گپ و گفتگو +theFirstPersonToComeOnThisUrlWillPlayWithYou=اولین کسی که به این لینک بیاید با شما بازی می کند +whiteCreatesTheGame=بازیکن سپید میزبان است +blackCreatesTheGame=بازیکن سیاه میزبان است +whiteJoinsTheGame=بازیکن سپید به بازی پیوست +blackJoinsTheGame=بازیکن سیاه به بازی پیوست +whiteResigned=بازیکن سپید کنارهگیری کرد +blackResigned=بازیکن سیاه کنارهگیری کرد +whiteLeftTheGame=بازیکن سپید بازی را ترک کرد +blackLeftTheGame=بازیکن سیاه بازی را ترک کرد +contact=تماس +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=در این قسمت چیزی برای دیدن نیست اگر شما فکر می کنید این باگ است به ما پست بفرستید%s +shareThisUrlToLetSpectatorsSeeTheGame=به اشتراک گذاشتن این آدرس به تماشاگران اجازه دیدن بازی را می دهد +replayAndAnalyse=نمایش دوباره و تجزیه و تحلیل +flipBoard=بازیکن برتر +threefoldRepetition=تکرار سه گانه +claimADraw=درخواست قرعه کشی +offerDraw=پیشنهاد مساوی +draw=مساوی +nbConnectedPlayers=بازیکنان حاضر %s نفر +talkAboutChessAndDiscussLichessFeaturesInTheForum=صحبت درباره شطرنج و بحث در رابطه با امکانات بازی لیچز در فروم +seeTheGamesBeingPlayedInRealTime=مشاهده بازی ها در زمان واقعی بازی +gamesBeingPlayedRightNow=بازی در آستانه شروع می باشد +viewAllNbGames=بازی %s مشاهده تمام +viewNbCheckmates=مات شدن %s مشاهده +viewInFullSize=تماشا کردن در تمام سایز +logOut=خروج +signIn=ورود +signUp=ثبت نام +people=مردم +games=بازی ها +forum=انجمن +chessPlayers=بازیکنان شطرنج +first=اولین +previous=قبلی +next=بعدی +last=آخرین +minutesPerSide=دقیقه در هر طرف +variant=گوناگونی +timeControl=کنترل زمان +start=آغاز +username=نام کاربری +password=رمزعبور +haveAnAccount=شما صاحب حساب کاربری می باشید؟ +allYouNeedIsAUsernameAndAPassword=تمام چیزی که شما نیاز دارید نام کاربری و رمزعبور می باشد +learnMoreAboutLichess=Lichess بیشتر بدانید درباره +rank=رتبه +gamesPlayed=بازی های انجام شده +declineInvitation=نپذیرفتن دعوت +cancel=انصراف +timeOut=وقت تمام +drawOfferSent=پیشنهاد مساوی فرستاده شد +drawOfferDeclined=پیشنهاد مساوی پذیرفته نشد +drawOfferAccepted=پیشنهاد مساوی را پذیرفت +drawOfferCanceled=پیشنهاد مساوی لغو شد +yourOpponentOffersADraw=رقیب شما به شما درخواست مساوی شده در بازی را داد +accept=پذیرفتن +decline=نپذیرفتن +playingRightNow=بازی در حال حاضر +abortGame=انصراف از بازی +gameAborted=بازی لغو شد +standard=مرسوم +unlimited=نا محدود +mode=حالت +casual=غیر رسمی +rated=رتبه داده شد +thisGameIsRated=این بازی رتبه بندی می شود +rematchOfferSent=درخواست بازی دوباره فرستاده شد +rematchOfferAccepted=درخواست بازی دوباره را قبول کرد +play=بازی +inbox=صندوق +chatRoom=اتاق چت +composeMessage=نوشتن پیام +sentMessages=پیام های ارسال شده +incrementInSeconds=افزایش در ثانیه +freeOnlineChess=شطرنج آنلاین رایگان +spectators=تماشاگران : +nbWins=برد +nbLosses=باخت +nbDraws=تساوی +exportGames=بازی های صادره +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=بازی شطرنج آنلاین. بازی شطرنج در حال حاضر در یک رابط تمیز. بدون نیاز به ثبت نام ، بدون تبلیغات ، هیچ پلاگین مورد نیاز، در دسترس است. بازی شطرنج با کامپیوتر، دوستان و یا حریفان تصادفی. diff --git a/conf/messages.fi b/conf/messages.fi new file mode 100644 index 0000000000000..3cc03c58dd9a3 --- /dev/null +++ b/conf/messages.fi @@ -0,0 +1,130 @@ +playWithAFriend=Pelaa ystävän kanssa +inviteAFriendToPlayWithYou=Kutsu ystävä pelaamaan kanssasi +playWithTheMachine=Pelaa tietokonetta vastaan +challengeTheArtificialIntelligence=Haasta tekoäly +toInviteSomeoneToPlayGiveThisUrl=Anna tämä linkki ystävälle kutsuaksesi hänet pelaamaan. +gameOver=Peli ohi +waitingForOpponent=Odotetaan vastustajaa +waiting=Odotetaan.. +yourTurn=Sinun vuorosi +aiNameLevelAiLevel=%s taso %s +level=Taso +toggleTheChat=Chat päälle / pois +chat=Chat: +giveUp=Luovuttaa: +resign=Luovuta +checkmate=Shakkimatti +stalemate=Patti +white=Valkoinen +black=Musta +createAGame=Tee peli +random=Satunnainen +noGameAvailableRightNowCreateOne=Ei peliä saatavilla juuri nyt, tee oma! +whiteIsVictorious=Valkoinen voittaa +blackIsVictorious=Musta voittaa +playANewGame=Pelaa uusi peli +rematch=Revanssi +playWithTheSameOpponentAgain=Pelaa saman vastustajan kanssa uudelleen +newOpponent=Uusi vastustaja +playWithAnotherOpponent=Pelaa toisen vastustajan kanssa +yourOpponentWantsToPlayANewGameWithYou=Vastustajasi haluaa pelata uuden pelin kanssasi +joinTheGame=Liity peliin +youAreViewingThisGameAsASpectator=Seuraat tätä peliä katsojana +whitePlays=Valkoisen vuoro +blackPlays=Mustan vuoro +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Toinen pelaaja lähti pelistä. Voit ottaa luovutusvoiton tai odottaa häntä. +makeYourOpponentResign=Pakota luovutus +forceResignation=Ota luovutusvoitto +talkInChat=Kirjoita chattiin +theFirstPersonToComeOnThisUrlWillPlayWithYou=Ensimmäinen ihminen joka käyttää tämän linkin pelaa sinua vastaan. +whiteCreatesTheGame=Valkoinen luo pelin +blackCreatesTheGame=Musta luo pelin +whiteJoinsTheGame=Valkoinen liittyy peliin +blackJoinsTheGame=Musta liittyy peliin +whiteResigned=Valkoinen luovutti +blackResigned=Musta luovutti +whiteLeftTheGame=Valkoinen lähti pelistä +blackLeftTheGame=Musta lähti pelistä +contact=Ota yhteyttä +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Täällä ei ole mitään nähtävää. Jos luulet että se on virhe tai bugi voit lähettää meille sähköpostia osoitteeseen %s +shareThisUrlToLetSpectatorsSeeTheGame=Jaa tämä linkki pelin katsojille +replayAndAnalyse=Toista ja analysoi +viewGameStats=Näytä pelitilanne +flipBoard=Käännä lautaa +threefoldRepetition=Laudalla sama asema kolmatta kertaa +claimADraw=Vaadi tasapeliä +offerDraw=Ehdota tasapeliä +draw=Tasapeli +nbConnectedPlayers=%s pelaajaa paikalla +talkAboutChessAndDiscussLichessFeaturesInTheForum=Keskustele shakista ja Lichessin ominaisuuksista keskustelualueella +seeTheGamesBeingPlayedInRealTime=Seuraa parhaillaan pelattavia pelejä +gamesBeingPlayedRightNow=Tällä hetkellä pelattavat pelit +viewAllNbGames=Seuraa %s pelejä +viewNbCheckmates=Katso %s shakkimatit +viewInFullSize=Näytä Täyskokoisena +logOut=Kirjaudu ulos +signIn=Kirjaudu sisään +signUp=Rekisteröidy +people=Pelaajat +games=Pelit +forum=Keskustelualue +chessPlayers=Shakin pelaajat +first=Ensimmäinen +previous=Edellinen +next=Seuraava +last=Viimeinen +minutesPerSide=Minuuttia per puoli +variant=Muunnos +timeControl=Ajan hallinta +start=Aloita +username=Käyttäjänimi +password=Salasana +haveAnAccount=Onko sinulla tunnus? +allYouNeedIsAUsernameAndAPassword=Tarvitset vain käyttäjätunnuksen ja salasanan. +learnMoreAboutLichess=Opi lisää Lichessista +rank=Sijoitus +gamesPlayed=Pelatut pelit +declineInvitation=Hylkää kutsu +cancel=Peruuta +timeOut=Aika loppui +drawOfferSent=Tasapelitarjous lähetetty +drawOfferDeclined=Tasapelitarjous hylätty +drawOfferAccepted=Tasapelitarjous hyväksytty +drawOfferCanceled=Tasapelitarjous peruttu +yourOpponentOffersADraw=Vastustajasi tarjoaa tasapeliä +accept=Hyväksy +decline=Hylkää +playingRightNow=Pelaamassa juuri nyt +abortGame=Keskeytä peli +gameAborted=Peli keskeytetty +standard=Tavallinen +unlimited=Ei aikaa +mode=Tyyppi +casual=Rento +rated=Arvosteltu +thisGameIsRated=Tämä peli on arvosteltu +rematchOfferSent=Revanssipyyntö lähetetty +rematchOfferAccepted=Revanssipyyntö hyväksytty +cancelRematchOffer=Hylkää revanssi tarjous +play=Pelaa +inbox=Postilaatikko +chatRoom=Chat huone +composeMessage=Luo viesti +sentMessages=Lähetetyt viestit +incrementInSeconds=Lisäaika sekunneissa +freeOnlineChess=Ilmainen virtuaalishakki +spectators=Katsojat: +nbWins=%s voittoa +nbLosses=%s häviötä +nbDraws=%s tasapeliä +exportGames=Vie pelejä +color=Väri +eloRange=Vahvuuslukuero +giveNbSeconds=Anna %s sekuntia +searchAPlayer=Etsi pelaajaa +whoIsOnline=Kuka on online-tilassa +allPlayers=Kaikki pelaajat +namedPlayers=Nimetyt pelaajat +premoveEnabledClickAnywhereToCancel=Esisiirto käytössä - klikkaa mistä tahansa peruuttaaksesi +thisPlayerUsesChessComputerAssistance=Tämä pelaaja käyttää shakin tietokoneohjelmaa apuvälineenä. +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Ilmainen virtuaalishakki-peli. Pelaa shakkia nyt puhtaalla käyttöliittymällä. Ei rekisteröitymistä taikka mainoksia. Pelaa shakkia tekoälyn, ystävien tai satunnaisten pelaajien kanssa. diff --git a/conf/messages.fp b/conf/messages.fp new file mode 100644 index 0000000000000..3dafb76181daa --- /dev/null +++ b/conf/messages.fp @@ -0,0 +1,80 @@ +playWithAFriend=Joyèr avoy un amì +inviteAFriendToPlayWithYou=Invitar un amì a joyèr avoy-t’ +playWithTheMachine=Joyèr contra la machina +challengeTheArtificialIntelligence=Defiyar l’ inteligènci artificèla +toInviteSomeoneToPlayGiveThisUrl=Per invitar quarqu'un a joyèr, balyi cetì lèm +gameOver=Finit +waitingForOpponent=Atendant l’ adverséro +waiting=Atendant +yourTurn=A ton tórn +aiNameLevelAiLevel=%s nivèł %s +level=Nivèł +toggleTheChat=Sacòrre la visibilità d’o barjacàjo +chat=Barjacàjo +giveUp=Cessar +resign=Depitar +checkmate=Echec é Mat +stalemate=Pata +white=Blanc +black=Néyr +whiteIsVictorious=Lo bllanc ganye +blackIsVictorious=Lo néyr ganye +playANewGame=Joyèr ‘na novela passa +rematch=Rejoyèr +playWithTheSameOpponentAgain=Joyèr ‘ncor avoy lo mémo adverséro +yourOpponentWantsToPlayANewGameWithYou=Ton adverséro vòt ‘ncor rejoyi na novela passa avoy-t’ +joinTheGame=Bretar la passa +youAreViewingThisGameAsASpectator=T'avèses cetà passa como un spectator +whitePlays=Bllanc joya +blackPlays=Nèyr joya +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=L'autro joyor a modà la passa. Te pòs lo fàre depitar u l'atèndre. +makeYourOpponentResign=Fàre depitar l'adverséro +forceResignation=Fàre depitar +talkInChat=Devesar dèns lo barjacàjo +theFirstPersonToComeOnThisUrlWillPlayWithYou=La permèri persona que brete cetà passa joye avoy-t’. +whiteCreatesTheGame=Bllanc creye la passa +blackCreatesTheGame=Nèyr creye la passa +whiteJoinsTheGame=Bllanc brete la passa +blackJoinsTheGame=Nèyr brete la passa +whiteResigned=Bllanc a depità +blackResigned=Nèyr a depità +whiteLeftTheGame=Bllanc a modà la passa +blackLeftTheGame=Nèyr a modà la passa +contact=Contact +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Rèn a véyre iqui. Se te pènses qu'oÿ et ‘n’ erora, te pòs mendar de messàjo a %s +shareThisUrlToLetSpectatorsSeeTheGame=Partàji cetì lèm per lassèr de spector véyre dèns la passa +replayAndAnalyse=Rejoyèr é analisar +flipBoard=Virèr la tràbla +threefoldRepetition=Tripla repeticion +claimADraw=Cllamar l'egalità +draw=Egalità +nbConnectedPlayers=%s joyor conectàs +talkAboutChessAndDiscussLichessFeaturesInTheForum=Devesar des Echecs é discutar des posibilitàs de lichess dèns la pllacèta +seeTheGamesBeingPlayedInRealTime=Véyre les joyor èn tèmps reél +gamesBeingPlayedRightNow=Passes joyìyes yóra +viewAllNbGames=Véyre totes les %s passes +viewNbCheckmates=Vère los %s echecs +viewInFullSize=Vèyre èn plléna talyi +logOut=Modar +signIn=Se conectar +signUp=S'inscrire +people=Persones +games=Passes +forum=Pllacèta +chessPlayers=Joyor d'echec +first=Premères +previous=Avant +next=Apres +last=Darrèri +minutesPerSide=Minites per làt +variant=Variacion +timeControl=Controlo d’o tèmps +start=Comènci +username=Nom d'usor +password=Contrasinyi +haveAnAccount=T'as jà un aconto? +allYouNeedIsAUsernameAndAPassword=Tot cen te dét avér é un nom d'usor é na contrasinyi. +learnMoreAboutLichess=Savér més sus Lichess +rank=Rang +gamesPlayed=Passes joyìyes +declineInvitation=Refusar l'invitacion diff --git a/conf/messages.fr b/conf/messages.fr new file mode 100644 index 0000000000000..565505e4bc16c --- /dev/null +++ b/conf/messages.fr @@ -0,0 +1,139 @@ +playWithAFriend=Jouer avec un ami +inviteAFriendToPlayWithYou=Inviter un ami à jouer avec vous +playWithTheMachine=Jouer avec l'ordinateur +challengeTheArtificialIntelligence=Défier l'intelligence artificielle +toInviteSomeoneToPlayGiveThisUrl=Pour inviter quelqu'un à jouer, donnez-lui cette url +gameOver=Partie terminée +waitingForOpponent=En attente de l'adversaire +waiting=En attente +yourTurn=A votre tour +aiNameLevelAiLevel=%s niveau %s +level=Niveau +toggleTheChat=Activer/Désactiver la discussion +toggleSound=Activer/Désactiver le son +chat=Discussion +giveUp=Admettre la défaite +resign=Abandonner +checkmate=Echec et mat +stalemate=Pat +white=Blanc +black=Noir +createAGame=Créer une partie +random=Aléatoire +noGameAvailableRightNowCreateOne=Aucune partie disponible, créez-en une! +whiteIsVictorious=Blanc est victorieux +blackIsVictorious=Noir est victorieux +playANewGame=Jouer une nouvelle partie +rematch=Revanche +playWithTheSameOpponentAgain=Jouer à nouveau avec le même adversaire +newOpponent=Nouvel adversaire +playWithAnotherOpponent=Jouer avec un autre adversaire +yourOpponentWantsToPlayANewGameWithYou=Votre adversaire souhaite jouer une nouvelle partie avec vous +joinTheGame=Rejoindre la partie +youAreViewingThisGameAsASpectator=Vous voyez cette partie en tant que spectateur +whitePlays=Blanc joue +blackPlays=Noir joue +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=L'autre joueur a quitté la partie. Vous pouvez forcer l'abandon, ou attendre qu'il revienne. +makeYourOpponentResign=Forcer l'abandon de l'adversaire déconnecté +forceResignation=Forcer l'abandon +talkInChat=Parler à l'autre joueur +theFirstPersonToComeOnThisUrlWillPlayWithYou=La première personne à ouvrir cette page jouera avec vous. +whiteCreatesTheGame=Blanc crée la partie +blackCreatesTheGame=Noir crée la partie +whiteJoinsTheGame=Blanc rejoint la partie +blackJoinsTheGame=Noir rejoint la partie +whiteResigned=Blanc abandonne +blackResigned=Noir abandonne +whiteLeftTheGame=Blanc quitte la partie +blackLeftTheGame=Noir quitte la partie +contact=Contact +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Il n'y a rien à voir ici. Si vous pensez qu'il s'agit d'un bug, vous pouvez envoyer un courriel à %s +shareThisUrlToLetSpectatorsSeeTheGame=Partagez cette url pour laisser des spectateurs voir la partie +replayAndAnalyse=Revoir et analyser +viewGameStats=Voir les statistiques de la partie +flipBoard=Retourner l'échiquier +threefoldRepetition=Triple répétition +claimADraw=Déclarer la partie nulle +offerDraw=Proposer le nul +draw=Partie nulle +nbConnectedPlayers=%s joueurs connectés +talkAboutChessAndDiscussLichessFeaturesInTheForum=Parler d'échecs et discuter les fonctionalités de lichess dans le forum +seeTheGamesBeingPlayedInRealTime=Voir les parties jouées en temps réel +gamesBeingPlayedRightNow=Parties jouées en ce moment +viewAllNbGames=Voir les %s parties +viewNbCheckmates=Voir les %s mats +viewInFullSize=Agrandir +logOut=Déconnexion +signIn=Connexion +signUp=Inscription +people=Membres +games=Parties +forum=Forum +chessPlayers=Joueurs d'échecs +first=Premier +previous=Précédent +next=Suivant +last=Dernier +minutesPerSide=Minutes par joueur +variant=Variante +timeControl=Contrôle du temps +start=Démarrer +username=Pseudo +password=Mot de passe +haveAnAccount=Déjà inscrit ? +allYouNeedIsAUsernameAndAPassword=Vous n'avez besoin que d'un pseudo et d'un mot de passe +learnMoreAboutLichess=En savoir plus sur Lichess +rank=Classement +gamesPlayed=Parties jouées +declineInvitation=Décliner l'invitation +cancel=Annuler +timeOut=Temps écoulé +drawOfferSent=Proposition de nul envoyée +drawOfferDeclined=Proposition de nul refusée +drawOfferAccepted=Proposition de nul acceptée +drawOfferCanceled=Proposition de nul annulée +yourOpponentOffersADraw=Votre adversaire propose le nul +accept=Accepter +decline=Refuser +playingRightNow=Partie en cours +abortGame=Annuler la partie +gameAborted=Partie annulée +standard=Standard +unlimited=Illimité +mode=Mode +casual=Amicale +rated=Classée +thisGameIsRated=Cette partie est classée +rematchOfferSent=Proposition de revanche envoyée +rematchOfferAccepted=Proposition de revanche acceptée +cancelRematchOffer=Annuler la proposition de revanche +play=Jouer +inbox=Boite de réception +chatRoom=Salon de discussion +composeMessage=Écrire un message +sentMessages=Messages envoyés +incrementInSeconds=Incrément en secondes +freeOnlineChess=Jeu d'échecs gratuit en ligne +spectators=Spectateurs : +nbWins=%s victoires +nbLosses=%s défaites +nbDraws=%s nuls +exportGames=Exporter les parties +color=Couleur +eloRange=Fourchette de classement +giveNbSeconds=Donner %s secondes +searchAPlayer=Rechercher un joueur +whoIsOnline=Qui est en ligne +allPlayers=Tous les joueurs +namedPlayers=Joueurs nommés +premoveEnabledClickAnywhereToCancel=Premove activé - Cliquer ailleurs pour annuler +thisPlayerUsesChessComputerAssistance=Ce joueur utilise un programme d'échecs +opening=Ouverture +takeback=Annuler le coup +proposeATakeback=Proposer l'annulation du coup +takebackPropositionSent=Annulation du coup proposée +takebackPropositionDeclined=Annulation du coup refusée +takebackPropositionAccepted=Annulation du coup acceptée +takebackPropositionCanceled=Annulation du coup annulée +yourOpponentProposesATakeback=Votre adversaire propose l'annulation du coup +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Jeu d'échecs gratuit en ligne. Jouez aux échecs maintenant avec une interface simple. Pas d'inscription, pas de pub, aucun plugin requis. Jouez aux échecs avec l'ordinateur, des amis ou des adversaires aléatoires diff --git a/conf/messages.ga b/conf/messages.ga new file mode 100644 index 0000000000000..18f08d18d0769 --- /dev/null +++ b/conf/messages.ga @@ -0,0 +1,46 @@ +playWithAFriend=Seinn le cara +playWithTheMachine=Seinn an Meaisín +challengeTheArtificialIntelligence=Dúshlán intleacht shaorga a thabhairt +gameOver=Cluiche Thar +waitingForOpponent=Ag feitheamh le chéile comhraic +waiting=Fanacht +yourTurn=Do shealsa atá ann +aiNameLevelAiLevel=%s leibhéal %ai_level +level=Leibhéal +chat=Comhrá +giveUp=A thabhairt suas +resign=Éirigh as +checkmate=Marbhsháinn +stalemate=Leamhsháinn +white=Bán +black=Dubh +random=Fánach +rematch=Athimirt +draw=Comhscór +logOut=Logáil amach +signIn=Logáil isteach +people=Daoine +games=Cluichí +first=Céad +previous=Roimh Ré +next=Ansin +last=Deireanach +start=Tosach +username=Ainm úsáideora +password=Focal faire +rank=Céimíocht +cancel=Cealaigh +timeOut=As am +accept=Glac +decline=Diúltaigh +standard=Caighdeán +unlimited=Neamhtheoranta +mode=Modh +casual=Neamhfhoirmiúil +rated=Rátáil +play=Imir +inbox=Bhosca +chatRoom=Comhrá Seomra +spectators=Lucht féachana: +nbWins=Bhuaigh %s +nbLosses=Caillteanais %s diff --git a/conf/messages.gd b/conf/messages.gd new file mode 100644 index 0000000000000..376926a87526e --- /dev/null +++ b/conf/messages.gd @@ -0,0 +1,119 @@ +playWithAFriend=Cluich còmhla ri caraid +inviteAFriendToPlayWithYou=Thoir cuireadh do charaid gus cluich còmhla riut +playWithTheMachine=Cluich an aghaidh a' choimpiutair +challengeTheArtificialIntelligence=Thoir ionnsaigh air an inntinn fhuadain +toInviteSomeoneToPlayGiveThisUrl=Gus cuireadh a thoirt do chuideigin, thoir an url seo seachad +gameOver=Crìoch a’ gheama +waitingForOpponent=A’ feitheamh air nàmhaid +waiting=A’ feitheamh +yourTurn=An turas agad +aiNameLevelAiLevel=%s inbhe %s +level=Inbhe +toggleTheChat=Toglaich a’ chabadaich +chat=Cabadaich +giveUp=Leig seachad e +resign=Gèill +checkmate=Tul-chasg +stalemate=Clos-cluiche +white=Geal +black=Dubh +createAGame=Cruthaich geama +random=Air thuaiream +noGameAvailableRightNowCreateOne=Chan eil geama ri fhaighinn an-dràsta, cruthaich fear ùr! +whiteIsVictorious=Bhuannaich geal +blackIsVictorious=Bhuannaich dubh +playANewGame=Cluich geama ùr +rematch=Ath-mhaids +playWithTheSameOpponentAgain=Cluich an aghaidh an aon nàmhaid a-rithist +newOpponent=Nàmhaid ùr +playWithAnotherOpponent=Cluich an aghaidh nàmhaid eile +yourOpponentWantsToPlayANewGameWithYou=Tha an nàmhaid agad airson geama ùr a chluich còmhla riut +joinTheGame=Thig a-steach dhan gheama +youAreViewingThisGameAsASpectator=Tha thu a’ coimhead air a’ gheama seo nad neach-amhairc +whitePlays=Tha geal a’ cluich +blackPlays=Tha dubh a’ cluich +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Tha an geamaiche eile air a' gheama fhàgail. Is urrainn dhut gèilleadh a chur air, no feitheamh air a shon. +makeYourOpponentResign=Cuir gèilleadh air an nàmhaid agad +forceResignation=Cuir gèilleadh air an nàmhaid agad +talkInChat=Dèan cabadaich +theFirstPersonToComeOnThisUrlWillPlayWithYou=Cluichidh a’ chiad neach a thig a-steach air an url seo còmhla riut. +whiteCreatesTheGame=Tha geal a’ cruthachadh a’ gheama +blackCreatesTheGame=Tha dubh a’ cruthachadh a’ gheama +whiteJoinsTheGame=Thàinig geal a-steach dhan gheama +blackJoinsTheGame=Thàinig dubh a-steach dhan gheama +whiteResigned=Ghèill geal +blackResigned=Ghèill dubh +whiteLeftTheGame=Dh’fhàg geal an geama +blackLeftTheGame=Dh’fhàg dubh an geama +contact=Fios +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Chan eil dad ri fhaicinn an seo. Ma tha thu den bheachd gur e buga a th’ ann, is urrainn dhut post-d a chur gu %s +shareThisUrlToLetSpectatorsSeeTheGame=Co-roinn an url seo gus luchd-amhairc a leigeil a-steach dhan gheama +replayAndAnalyse=Ath-chluich is sgrùdaich +flipBoard=Dèan flip air a’ bhòrd +threefoldRepetition=Treas ath-nochdadh +claimADraw=Tagair geama ionnanach +offerDraw=Tairg geama ionnanach +draw=Geama ionnanach +nbConnectedPlayers=Tha %s geamaichean ceangailte +talkAboutChessAndDiscussLichessFeaturesInTheForum=Bruidhinn mu thàileasg agus deasbad air na feartan aig lichess air a’ bhòrd-bhrath +seeTheGamesBeingPlayedInRealTime=Seall air na geamaichean a tha gan cluich ann am fìor-ùine +gamesBeingPlayedRightNow=Geamaichean a tha gan cluich an-dràsta fhèin +viewAllNbGames=Seall air a h-uile %s de na geamaichean +viewNbCheckmates=Seall na chur %s de thul-chasg +viewInFullSize=Seall sa mheud iomlan +logOut=Log a-mach +signIn=Log a-steach +signUp=Clàraich +people=Daoine +games=Geamannan +forum=Bòrd-brath +chessPlayers=Geamaichean tàileisg +first=Toiseach +previous=Air ais +next=Air adhart +last=Deireadh +minutesPerSide=Mionaidean an taobh +variant=Caochladh +timeControl=Smachdadh-ùine +start=Toiseach +username=Far-ainm +password=Facal-faire +haveAnAccount=A bheil cunntas agad? +allYouNeedIsAUsernameAndAPassword=Chan eil a dhìth ort ach far-ainm agus facal-faire +learnMoreAboutLichess=Ionnsaich barrachd mu lichess +rank=Inbhe +gamesPlayed=Geamannan air an cluich +declineInvitation=Diùlt cuireadh +cancel=Sguir dheth +timeOut=Dh’fhalbh an ùine +drawOfferSent=Chaidh tairgse airson geama ionnanach a chur +drawOfferDeclined=Dhiùltadh do thairgse airson geama ionnanach +drawOfferAccepted=Ghabhadh ri do thairgse airson geama ionnanach +drawOfferCanceled=Sguireadh de do thairgse airson geama ionnanach +yourOpponentOffersADraw=Tha an nàmhaid agad a’ tairgse geama ionnanach +accept=Gabh ris +decline=Diùlt +playingRightNow=A’ cluich an-dràsta fhèin +abortGame=Stad an geama +gameAborted=Chaidh an geama a stad +standard=Coitcheann +unlimited=Gun chrìoch +mode=Modh +casual=Gun rangachadh +rated=Rangaichte +thisGameIsRated=Tha an geama seo rangaichte +rematchOfferSent=Chaidh tairgse airson ath-chluich a chur +rematchOfferAccepted=Ghabhadh ri do thairgse airson ath-chluich +play=Cluich +inbox=Bogsa a-steach +chatRoom=Seòmar cabadaich +composeMessage=Sgrìobh teachdaireachd +sentMessages=Teachdaireachdan air an cur +incrementInSeconds=Ioncramaid ann an diogan +freeOnlineChess=Tàileasg air loidhne an asgaidh +spectators=Luchd-amhairc: +nbWins=Bhuannaich %s +nbLosses=Chaill %s +nbDraws=Geama ionnanach le %s +exportGames=Às-phortaich geamannan +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Tàileasg air loidhne an asgaidh. Cluich tàileasg ann am prògram air a bheil dreach glan. Gun chlàradh, gun sanasachd, gun fheum air plugan. Cluich tàileasg an aghaidh a’ choimpiutair, charaidean no nàimhdean air thuaiream. diff --git a/conf/messages.gl b/conf/messages.gl new file mode 100644 index 0000000000000..92e5eaea18b80 --- /dev/null +++ b/conf/messages.gl @@ -0,0 +1,138 @@ +playWithAFriend=Xogar cun amigo +inviteAFriendToPlayWithYou=Convidar a un amigo a xogar contra vostede +playWithTheMachine=Xogar contra a máquina +challengeTheArtificialIntelligence=Desafiar á intelixencia artificial +toInviteSomeoneToPlayGiveThisUrl=Para invitar a alguén a xogar, déalle este URL +gameOver=Rematou a partida +waitingForOpponent=Agardando ó rival +waiting=Agardando +yourTurn=O seu turno +aiNameLevelAiLevel=%s co nivel %s +level=Nivel +toggleTheChat=(Des)activar o chat +chat=Chat +giveUp=Renderse +resign=Abandonar +checkmate=Xaque mate +stalemate=Rei afogado +white=Brancas +black=Negras +createAGame=Crear un xogo +random=Aleatorio +noGameAvailableRightNowCreateOne=Non hai partidas dispoñibles agora mesmo. Cree unha! +whiteIsVictorious=Venceron as brancas +blackIsVictorious=Venceron as negras +playANewGame=Xogar unha nova partida +rematch=Revancha +playWithTheSameOpponentAgain=Xogar outra vez contra o mesmo rival +newOpponent=Rival novo +playWithAnotherOpponent=Xogar con outro rival +yourOpponentWantsToPlayANewGameWithYou=O seu rival quere xogar unha nova partida contra vostede +joinTheGame=Unirse á partida +youAreViewingThisGameAsASpectator=Está vendo esta partida como espectador +whitePlays=Xogan as brancas +blackPlays=Xogan as negras +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=O outro xogador saiu da partida. Pode forzar o seu abandono, ou agardar por el. +makeYourOpponentResign=Facer que o seu rival abandone +forceResignation=Forzar o abandono +talkInChat=Falar no chat +theFirstPersonToComeOnThisUrlWillPlayWithYou=A primeira persoa que chegue a este URL xogará contra vostede +whiteCreatesTheGame=As brancas crean a partida +blackCreatesTheGame=As negras crean a partida +whiteJoinsTheGame=As brancas únense á partida +blackJoinsTheGame=As negras únense á partida +whiteResigned=As brancas abandonaron +blackResigned=As negras abandonaron +whiteLeftTheGame=As brancas saíron da partida +blackLeftTheGame=As negras saíron da partida +contact=Contacto +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Non hai nada que ver aquí. Se pensa que se trata dun erro, pode enviar un correo a %s +shareThisUrlToLetSpectatorsSeeTheGame=Comparta este URL para permitir aos espectadores ver a partida +replayAndAnalyse=Volver a xogar e analizar +viewGameStats=Ver estatísticas da partida +flipBoard=Xirar o taboleiro +threefoldRepetition=Repetición triple de posición +claimADraw=Solicitar táboas +offerDraw=Ofrecer táboas +draw=Táboas +nbConnectedPlayers=%s xogadores conectados +talkAboutChessAndDiscussLichessFeaturesInTheForum=Fale sobre xadrez e discuta sobre as características de lichess no foro +seeTheGamesBeingPlayedInRealTime=Ver as partidas en curso en tempo real +gamesBeingPlayedRightNow=Partidas en curso agora mesmo +viewAllNbGames=Ver todas as %s partidas +viewNbCheckmates=Ver os %s xaques mates +viewInFullSize=Ver en tamaño completo +logOut=Sair +signIn=Iniciar sesión +signUp=Inscribirse +people=Xente +games=Partidas +forum=Foro +chessPlayers=Xogadores de xadrez +first=Primeiro +previous=Anterior +next=Seguinte +last=Último +minutesPerSide=Minutos por bando +variant=Variante +timeControl=Control de tempo +start=Comezar +username=Nome de usuario +password=Contrasinal +haveAnAccount=Ten unha conta? +allYouNeedIsAUsernameAndAPassword=Todo o que necesita é un nome de usuario e un contrasinal +learnMoreAboutLichess=Coñecer máis sobre Lichess +rank=Clasificación +gamesPlayed=Partidas xogadas +declineInvitation=Rexeitar a invitación +cancel=Cancelar +timeOut=Tempo esgotado +drawOfferSent=Enviouse a oferta de táboas +drawOfferDeclined=Rexeitouse a oferta de táboas +drawOfferAccepted=Aceptouse a oferta de táboas +drawOfferCanceled=Cancelouse a oferta de táboas +yourOpponentOffersADraw=O seu rival ofrécelle táboas +accept=Aceptar +decline=Rexeitar +playingRightNow=Xogando agora mesmo +abortGame=Abortar a partida +gameAborted=Abortouse a partida +standard=Estándar +unlimited=Ilimitado +mode=Modo +casual=Informal +rated=Puntuado +thisGameIsRated=Esta partida é puntuada +rematchOfferSent=Enviouse a oferta de revancha +rematchOfferAccepted=Aceptouse a oferta de revancha +cancelRematchOffer=Cancelar a petición de revancha +play=Xogar +inbox=Bandexa de entrada +chatRoom=Sala de conversa +composeMessage=Escribir mensaxe +sentMessages=Menxases enviados +incrementInSeconds=Incremento en segundos +freeOnlineChess=Xadrez libre en liña +spectators=Espectadores: +nbWins=%s victorias +nbLosses=%s derrotas +nbDraws=%s táboas +exportGames=Exportar xogos +color=Cor +eloRange=Clasificación ELO +giveNbSeconds=Dar %s segundos +searchAPlayer=Buscar un xogador +whoIsOnline=Quen está en liña +allPlayers=Todos os xogadores +namedPlayers=Xogadores con nome +premoveEnabledClickAnywhereToCancel=Movemento previo habilitado. Prema en calquer sitio para cancelar. +thisPlayerUsesChessComputerAssistance=Este xogador sírvese de programas de xadrez +opening=Apertura +takeback=Cambiar a xogada +proposeATakeback=Propoñer cambiar a xogada +takebackPropositionSent=Proposta de cambio enviada +takebackPropositionDeclined=Proposta de cambio rexeitada +takebackPropositionAccepted=Proposta de cambio aceptada +takebackPropositionCanceled=Proposta de cambio cancelada +yourOpponentProposesATakeback=O seu rival propón cambiar a xogada +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Xadrez libre en liña. Xoga ó xadrez cunha interface limpa. Sen rexistrarse, sen anuncios, sen necesidade de plugins. Xoga ó xadrez contra o ordenador, amigos ou rivais aleatorios. diff --git a/conf/messages.he b/conf/messages.he new file mode 100644 index 0000000000000..dd0247e55f2da --- /dev/null +++ b/conf/messages.he @@ -0,0 +1,126 @@ +playWithAFriend=שחק עם חבר +inviteAFriendToPlayWithYou=הזמן חבר לשחק איתך +playWithTheMachine=שחק עם המחשב +challengeTheArtificialIntelligence=אתגר את הבינה המלאכותית +toInviteSomeoneToPlayGiveThisUrl=כדי להזמין מישהוא לשחק, תן את הכתובת הזאת +gameOver=המשחק נגמר +waitingForOpponent=ממתין ליריב +waiting=ממתין +yourTurn=תורך +aiNameLevelAiLevel=%s רמה %s +level=רמה +toggleTheChat=הפעל את הצא'ט +chat=צ'אט +giveUp=היכנע +resign=פרוש +checkmate=מט +stalemate=פט +white=לבן +black=שחור +createAGame=צור משחק +random=רנדומלי +noGameAvailableRightNowCreateOne=אין משחק אפשרי כרגע, צור אחד! +whiteIsVictorious=לבן ניצח +blackIsVictorious=שחור ניצח +playANewGame=התחל משחק חדש +rematch=משחק נוסף +playWithTheSameOpponentAgain=שחק שוב עם אותו יריב +newOpponent=יריב חדש +playWithAnotherOpponent=שחק עם יריב אחר +yourOpponentWantsToPlayANewGameWithYou=יריבך רוצה לשחק איתך שוב +joinTheGame=הצטרף למשחק +youAreViewingThisGameAsASpectator=הנך רואה משחק זה כצופה +whitePlays=לבן משחק +blackPlays=שחור משחק +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=יריבך עזב את המשחק. באפשרותך לכפות התפטרות, או להמתין לו. +makeYourOpponentResign=הכרח את יריבך להכנע +forceResignation=כפה פרישה +talkInChat=דבר בצ'אט +theFirstPersonToComeOnThisUrlWillPlayWithYou=האדם הראשון שיכנס לכתובת הזאת ישחק נגדך +whiteCreatesTheGame=לבן יוצר את המשחק +blackCreatesTheGame=שחור יוצר את המשחק +whiteJoinsTheGame=לבן מצטרף אל המשחק +blackJoinsTheGame=שחור מצטרף אל המשחק +whiteResigned=לבן פרש +blackResigned=שחור פרש +whiteLeftTheGame=לבן עזב את המשחק +blackLeftTheGame=שחור עזב את המשחק +contact=צור קשר +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=אין כלום לראות כאן.אם אתה חושב שזה חרק אתה יכול לשלוח אימייל ל..<אימייל> +shareThisUrlToLetSpectatorsSeeTheGame=שתף URL זה כדי לאפשר לצופים לראות את המשחק +replayAndAnalyse=שחק שוב ונתח +flipBoard=הפוך לוח +threefoldRepetition=חזרה משולשת +claimADraw=דרוש תיקו +offerDraw=הצע תיקו +draw=תיקו +nbConnectedPlayers=%s שחקנים מחוברים +talkAboutChessAndDiscussLichessFeaturesInTheForum=דבר אודות שחמט ותכונות Lichess בפורום +seeTheGamesBeingPlayedInRealTime=ראה משחקים המתבצעים כעת +gamesBeingPlayedRightNow=משחקים המבצעים עכשיו +viewAllNbGames=צפה בכל משחקי ה-nb +viewNbCheckmates=צפה בחבריך לשח +viewInFullSize=הגדל למסך מלא +logOut=התנתק +signIn=התחבר +signUp=הירשם +people=אנשים +games=משחקים +forum=פורום +chessPlayers=שחקני שחמט +first=ראשון +previous=הקודם +next=הבא +last=האחרון +minutesPerSide=דקות לצד +variant=משתנה +timeControl=שליטה בזמן +start=התחל +username=שם משתמש +password=סיסמה +haveAnAccount=חשבון קיים ? +allYouNeedIsAUsernameAndAPassword=כל מה שאתה צריך זה רק שם משתמש וסיסמא +learnMoreAboutLichess=למד עוד על LICHESS +rank=דירוג +gamesPlayed=משחקים ששוחקו +declineInvitation=דחה הזמנה +cancel=בטל +timeOut=נגמר הזמן +drawOfferSent=הצעת התיקו נשלחה +drawOfferDeclined=הצעת התיקו נדחתה +drawOfferAccepted=הצעת התיקו התקבלה +drawOfferCanceled=הצעת התיקו בוטלה +yourOpponentOffersADraw=יריבך מציע לסיים את המשחק בתיקו +accept=קבל +decline=סרב +playingRightNow=משחקים עכשיו +abortGame=בטל משחק +gameAborted=משחק בוטל +standard=רגיל +unlimited=בלתי מוגבל +mode=מצב +casual=רגוע +rated=קוטלג +thisGameIsRated=משחק זה מדורג +rematchOfferSent=הצעה לסיבוב חוזר נשלחה +rematchOfferAccepted=הצעה לסיבוב חוזר התקבלה +play=שחק +inbox=תיבת דואר +chatRoom=חדר צ'ט +composeMessage=חבר הודעה +sentMessages=דואר יוצא +incrementInSeconds=עליה בשניות +freeOnlineChess=שחמט חינמי ברשת +spectators=צופים +nbWins=%s נצחונות +nbLosses=%s הפסדים +nbDraws=%s שיוויונות +exportGames=יצוא משחקים +color=צבע +eloRange=טווח מד כושר +searchAPlayer=חפש יריב +whoIsOnline=מי מחובר +allPlayers=כל השחקנים +namedPlayers=שחקנים רשומים +thisPlayerUsesChessComputerAssistance=שחקן זה נעזר במחשב בכדי לשחק +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=משחק שחמט חינם ברשת. שחק שחמט כעתת ללא הרשמה, ללא פרסומות ושום דבר אינו דרוש diff --git a/conf/messages.hi b/conf/messages.hi new file mode 100644 index 0000000000000..c4916958cada7 --- /dev/null +++ b/conf/messages.hi @@ -0,0 +1,116 @@ +playWithAFriend=मित्र के साथ खेलो +inviteAFriendToPlayWithYou=एक मित्र को आमंत्रित करें आप के साथ खेलने के लिए +playWithTheMachine=कंप्यूटर के साथ खेलो +challengeTheArtificialIntelligence=कृत्रिम बुद्धि को चुनौती दे! +toInviteSomeoneToPlayGiveThisUrl=इस खेल में किसी को आमंत्रित करने के लिए ये URL दे +gameOver=खेल समाप्त +waitingForOpponent=कृपया अपने प्रतिद्वंद्वी की प्रतीक्षा कीजये +waiting=प्रतीक्षा कीजये +yourTurn=आपकी बारी +aiNameLevelAiLevel=%s स्तर %s +level=स्तर +toggleTheChat=शुरू/बंध चेट +chat=चेट +giveUp=दूम दबा के भागो +resign=हार मान लो +checkmate=शेह और मात +stalemate=गतिरोध +white=सफेद +black=काला +createAGame=एक खेल बनाएँ +random=अनियमित +noGameAvailableRightNowCreateOne=अभी खेल उपलब्ध नहीं है, एक बनाएँ +whiteIsVictorious=सफेद जीत गया +blackIsVictorious=काला जीत गया +playANewGame=नया खेल खेलें +rematch=फिरसे खेलें +playWithTheSameOpponentAgain=इसी के प्रतिद्वंद्वी साथ फिरसे खेले +newOpponent=नई प्रतिद्वंद्वी +playWithAnotherOpponent=एक और प्रतिद्वंद्वी के साथ खेलो +yourOpponentWantsToPlayANewGameWithYou=आपका प्रतिद्वंद्वी आपके साथ एक और खेल खेलना चाहता हे +joinTheGame=खेल में शामिल हों +youAreViewingThisGameAsASpectator=आप एक दर्शक के रूप में इस खेल को देख रहे हैं +whitePlays=सफेद ने खेला +blackPlays=काले ने खेला +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=आपका प्रतिद्वंद्वी ये खेल छोड़ कर चला गया हैं. आप चाहे तो मज़बूरी से अपनी जीत काबुल कर सकते हैं या फिर अपने प्रतिद्वंद्वी के लिए प्रतीक्षा कर सकते हैं +makeYourOpponentResign=अपने प्रतिद्वंद्वी को हारने पे मजबूर करें +forceResignation=मजबूरन हारना +talkInChat=चेट में बातें करे +theFirstPersonToComeOnThisUrlWillPlayWithYou=पहला आदमी जो भी इस URL पे आएगा वह आपके साथ शतरंज का खेल खेलेगा +whiteCreatesTheGame=सफेद ने शतरंज का खेल रचाया हे +blackCreatesTheGame=काले ने शतरंज का खेल रचाया हे +whiteJoinsTheGame=सफेद खेल में शामिल हुआ +blackJoinsTheGame=काला खेल में शामिल हुआ +whiteResigned=सफेद ने हार मानली +blackResigned=काले ने हार मानली +whiteLeftTheGame=सफेद दूम दबाकर भाग गया +blackLeftTheGame=काला दूम दबाकर भाग गया +contact=संपर्क +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=यहाँ पे देखने के लायक कुछ नहीं हैं, अगर आपको यह हमारी गलती लगती हैं तो संपर्क करें इस ईमेल एड्रेस पर %s +shareThisUrlToLetSpectatorsSeeTheGame=यह URL को SHARE करिएँ अपने दोस्तों के साथ +replayAndAnalyse=विश्लेषण +flipBoard=चेस बोर्ड को पलटें +threefoldRepetition=तिगुना पुनरावृत्ति +claimADraw=खेल को बरा-बरी का होने का दावा करें +offerDraw=संधि का प्रस्ताव दें +draw=न कोई जीता न कोई हारा +nbConnectedPlayers=जुड़े हुए खिलाड़ी +talkAboutChessAndDiscussLichessFeaturesInTheForum=शतरंज के विषय में गोष्ठी करें +seeTheGamesBeingPlayedInRealTime=अभी चल रहे खेलों को देखें +gamesBeingPlayedRightNow=अभी चल रहे खेल +viewAllNbGames=सारे खेल देखें +viewNbCheckmates=सारे शह और मात देखें +viewInFullSize=बड़ा कर देखें +logOut=बाहर प्रवेश करें +signIn=प्रवेश करें +signUp=साइन अप करें +people=लोग +games=खेल +forum=जनसभा +chessPlayers=शतरंज खिलाड़ी +first=पहला +previous=पिछला +next=अगला +last=अंतिम +minutesPerSide=मिनट प्रति खिलाड़ी +variant=रूपान्तर +timeControl=समय नियंत्रण +start=शुरू करें +username=यूसर-नाम +password=पासवर्ड +haveAnAccount=क्या आपके पास अकाऊंट है? +allYouNeedIsAUsernameAndAPassword=आपको सिर्फ एक यूसर-नाम और पासवर्ड चाहिए. +learnMoreAboutLichess=और जाने +rank=क्रम संख्या +gamesPlayed=खेले हुए खेल +declineInvitation=निमंत्रण अस्वीकार करें +cancel=रद्द करें +timeOut=समय समाप्ति +drawOfferSent=संधि प्रस्ताव भेजा गया. +drawOfferDeclined=संधि प्रस्ताव अस्वीकार किया गया +drawOfferAccepted=संधि प्रस्ताव स्वीकार किया गया +drawOfferCanceled=संधि प्रस्ताव रद्द किया गया. +yourOpponentOffersADraw=आपके प्रतिद्वंदी ने संधि प्रस्ताव भेजा है +accept=स्वीकार करें +decline=अस्वीकार करें +playingRightNow=अभी खेले जा रहे +abortGame=खेल रद्द करें +gameAborted=खेल रद्द किया गया +standard=स्तर +unlimited=असीमित +mode=प्रणाली +casual=अनियमित +rated=मूल्यांकन किया गया +thisGameIsRated=यह खेल मूल्यांकन किया गया है| +rematchOfferSent=फिर से खेलने का प्रस्ताव भेज दिया गया है +rematchOfferAccepted=दुबारा खेलने का प्रस्ताव स्वीकार कर लिया गया है +play=खेलो +chatRoom=बातचीत का जगह +composeMessage=सन्देश बनाएँ +sentMessages=भेजे गए सन्देश +incrementInSeconds=हर चाल पर सेकंड्स की वृद्धि +freeOnlineChess=मुफ्त ऑनलाइन शतरंज +spectators=दर्शक +nbWins=%s जीत +nbLosses=%s हार +color=रंग diff --git a/conf/messages.hr b/conf/messages.hr new file mode 100644 index 0000000000000..2901000781928 --- /dev/null +++ b/conf/messages.hr @@ -0,0 +1,129 @@ +playWithAFriend=Igraj protiv prijatelja +inviteAFriendToPlayWithYou=Pozovi prijatelja na igru +playWithTheMachine=Igraj protiv računala +challengeTheArtificialIntelligence=Izazovi umjetnu inteligenciju +toInviteSomeoneToPlayGiveThisUrl=Za poziv na igru, pošalji ovaj URL +gameOver=Igra gotova +waitingForOpponent=Čekam protivnika +waiting=Čekanje +yourTurn=Vaš potez +aiNameLevelAiLevel=%s fityma %s +level=Razina +toggleTheChat=Uključi/isključi chat +chat=Chat +giveUp=Odustani +resign=Predaj igru +checkmate=Šah mat +stalemate=Pat +white=Bijeli +black=Crni +createAGame=Stvori igru +random=Nasumično +noGameAvailableRightNowCreateOne=Trenutačno nema igara. Stvorite jednu! +whiteIsVictorious=Bijeli je pobjednik +blackIsVictorious=Crni je pobjednik +playANewGame=Počni novu igru +rematch=Revanš +playWithTheSameOpponentAgain=Igraj opet s istim protivnikom +newOpponent=Novi protivnik +playWithAnotherOpponent=Igraj sa drugim protivnikom +yourOpponentWantsToPlayANewGameWithYou=Tvoj protivnik želi novu igru s tobom +joinTheGame=Pridruži se igri +youAreViewingThisGameAsASpectator=Promatrate ovu igru kao gledatelj +whitePlays=Bijeli je na potezu +blackPlays=Crni je na potezu +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Drugi igrač je napustio igru. Možete ga prisiliti na predaju ili ga pričekati. +makeYourOpponentResign=Prisili protivnika na predaju +forceResignation=Prisili predaju +talkInChat=Pričaj na chat +theFirstPersonToComeOnThisUrlWillPlayWithYou=Prva osoba koja dođe na ovaj URL će igrati s tobom +whiteCreatesTheGame=Bijeli stvara igru +blackCreatesTheGame=Crni stvara igru +whiteJoinsTheGame=Bijeli se pridružuje igri +blackJoinsTheGame=Crni se pridružuje igri +whiteResigned=Bijeli predaje +blackResigned=Crni predaje +whiteLeftTheGame=Bijeli je napustio igru +blackLeftTheGame=Crni je napustio igru +contact=Kontakt +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Odlazi odavde, nemaš ničeg za vidjeti. Ukoliko misliš da je ovo bug pošalji email na %s +shareThisUrlToLetSpectatorsSeeTheGame=Podijeli ovaj url ukoliko želiš da promatrači vide ovu igru +replayAndAnalyse=Ponovi i analiziraj +flipBoard=Postavi ploču +threefoldRepetition=Trostrukoponavljanje +claimADraw=Zatražite remi +offerDraw=Ponudite remi +draw=Remi +nbConnectedPlayers=%s konektiranih igrača +talkAboutChessAndDiscussLichessFeaturesInTheForum=Pofázzál bele mindenbe amibe csak tudsz itt a lichess fórumon +seeTheGamesBeingPlayedInRealTime=Úgy lássad a jáccmát ahogy volt +gamesBeingPlayedRightNow=Partije koje se upravo igraju +viewAllNbGames=Pogledaj sve %s igre +viewNbCheckmates=Nézzed meg a %s dedurvát +viewInFullSize=pogledaj u punoj veličini +logOut=Odjavi se +signIn=Prijavi se +signUp=registriraj se +people=Prijatelji +games=Igre +forum=Igre +chessPlayers=Igrači šaha +first=Prvi +previous=Prethodni +next=Slijedeći +last=Zadnji +minutesPerSide=Minuta po igraču +variant=Varijanta +timeControl=Vremenska kontrola +start=Start +username=Korisničko ime +password=Zaporka +haveAnAccount=Imaš li otvoren račun? +allYouNeedIsAUsernameAndAPassword=Trebate samo korisničko ime i lozinku. +learnMoreAboutLichess=Nauči više o Lichess-u +rank=Rang +gamesPlayed=Broj odigranih igara +declineInvitation=odbij poziv +cancel=Odustani +timeOut=Vrijeme isteklo +drawOfferSent=Remi ponuda poslana +drawOfferDeclined=Remi ponuda odbijena +drawOfferAccepted=Remi ponuda prihvaćena +drawOfferCanceled=Opozvana ponuda za remi +yourOpponentOffersADraw=Protivnik nudi remi +accept=Prihvati +decline=Odbij +playingRightNow=Upravo igram +abortGame=Prekini igru +gameAborted=Igra prekinuta +standard=Standard +unlimited=Neograničeno +mode=Mod +casual=Prijateljska +rated=Za bodove +thisGameIsRated=Ovo je partija za bodove +rematchOfferSent=Ponuda za revanš poslana +rematchOfferAccepted=Ponuda za revanš prihvaćena +cancelRematchOffer=Otkaži ponudu za revanš +play=Igraj +inbox=Dolazna pošta +chatRoom=Pricaonica +composeMessage=Napiši poruku +sentMessages=Pošalji poruku +incrementInSeconds=Produljivanje u sekundama +freeOnlineChess=Besplatni internetski šah +spectators=Promatrači: +nbWins=%s pobjeda +nbLosses=%s poraza +nbDraws=%s remija +exportGames=Izvoz igara +color=Boja +eloRange=ELO raspon +giveNbSeconds=Daj protivniku %s sekundi +searchAPlayer=Traži slobodnog igrača +whoIsOnline=Tko je online +allPlayers=svi igrači +namedPlayers=igrači s imenom +premoveEnabledClickAnywhereToCancel=povlačenje poteza omogućeno - klikni bilo gdje za obustavu poteza +thisPlayerUsesChessComputerAssistance=ovaj igrač koristi kompjutersku pomoć +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Besplatni internetski šah. Igrajte odmah, u preglednom sučelju. Bez registriranja, bez reklama, bez preuzimanja. Igrajte protiv računala, prijatelja ili slučajnih protivnika. diff --git a/conf/messages.hu b/conf/messages.hu new file mode 100644 index 0000000000000..b3402a29c1155 --- /dev/null +++ b/conf/messages.hu @@ -0,0 +1,138 @@ +playWithAFriend=Játék egy ismerőssel +inviteAFriendToPlayWithYou=Hívj egy ismerőst játszani +playWithTheMachine=Játék a gép ellen +challengeTheArtificialIntelligence=Hívd ki a mesterséges intelligenciát +toInviteSomeoneToPlayGiveThisUrl=Használd ezt az url-t, hogy meghívj valakit játszani +gameOver=Játszma vége +waitingForOpponent=Várakozás az ellenfélre +waiting=Várakozás +yourTurn=Te következel +aiNameLevelAiLevel=%s szintű %s +level=Szint +toggleTheChat=Csevegő ki- bekapcsolása +chat=Csevegő +giveUp=Feladom +resign=Visszalépek +checkmate=Sakk-matt +stalemate=Patt +white=Világos +black=Sötét +createAGame=Játék létrehozása +random=Véletlenszerű +noGameAvailableRightNowCreateOne=Jelenleg nincs elérhető játék, hozz létre egyet! +whiteIsVictorious=A világos nyert +blackIsVictorious=A sötét nyert +playANewGame=Új játszma +rematch=Visszavágó +playWithTheSameOpponentAgain=Játék ugyanezzel az ellenféllel +newOpponent=Új ellenfél +playWithAnotherOpponent=Játék más ellenféllel +yourOpponentWantsToPlayANewGameWithYou=Az ellenfeled szeretne egy új játszmát játszani veled +joinTheGame=Kapcsolódás a játékhoz +youAreViewingThisGameAsASpectator=Ezt a játszmát csak megfigyeled +whitePlays=A világos játszik +blackPlays=A sötét játszik +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Az ellenfél elhagyta a játékot. Feladhatod a nevében, vagy várhatsz rá. +makeYourOpponentResign=Feladatom a játszmát +forceResignation=Visszaléptetem az ellenfelet +talkInChat=Csevegj +theFirstPersonToComeOnThisUrlWillPlayWithYou=Az első ember aki ezt az url-t használja, játékba lép veled +whiteCreatesTheGame=A világos létrehozza a játszmát +blackCreatesTheGame=A sötét létrehozza a játszmát +whiteJoinsTheGame=A világos csatlakozott a játszmához +blackJoinsTheGame=A sötét világos csatlakozott a játszmához +whiteResigned=A világos feladta +blackResigned=A sötét feladta +whiteLeftTheGame=A világos elhagyta a játékot +blackLeftTheGame=A sötét elhagyta a játékot +contact=Kapcsolat +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Nincs itt semmi látnivaló. Ha szerinted ez egy hiba, küldj egy emailt ide: %s +shareThisUrlToLetSpectatorsSeeTheGame=Oszd meg ezt az url-t, hogy mások is láthassák a játszmát +replayAndAnalyse=Újrajátszás, és elemzés +viewGameStats=Játék statisztikák megtekintése +flipBoard=Tábla megfordítása +threefoldRepetition=Háromszori tükörkép +claimADraw=Patt igénylése +offerDraw=Döntetlen felajánlása +draw=Patt +nbConnectedPlayers=%s csatlakozott játékos +talkAboutChessAndDiscussLichessFeaturesInTheForum=Beszélgess a sakkról és a lichess-ről a fórumban +seeTheGamesBeingPlayedInRealTime=Nézd a játékokat valós időben +gamesBeingPlayedRightNow=Éppen zajló játékok +viewAllNbGames=Nézd meg mind a %s játékot +viewNbCheckmates=Nézd meg a %s mattot +viewInFullSize=Teljes méret +logOut=Kijelentkezés +signIn=Bejelentkezés +signUp=Regisztráció +people=Emberek +games=Játékok +forum=Fórum +chessPlayers=Játékosok +first=Első +previous=Előző +next=Következő +last=Utolsó +minutesPerSide=Perc per oldal +variant=Változat +timeControl=Játék időre +start=Start +username=Felhasználónév +password=Jelszó +haveAnAccount=Van már fiókod? +allYouNeedIsAUsernameAndAPassword=Csak egy felhasználónévre, és jelszóra van szükség. +learnMoreAboutLichess=További információ a Lichess-ről +rank=Rang +gamesPlayed=Lejátszott játékok +declineInvitation=Meghívás elutasítása +cancel=Mégse +timeOut=Lejárt az idő +drawOfferSent=Felajánlás elküldve +drawOfferDeclined=Felajánlás elutasítva +drawOfferAccepted=Felajánlás elfogadva +drawOfferCanceled=Felajánlás visszavonva +yourOpponentOffersADraw=Az ellenfeled felajánlja hogy legyen döntetlen +accept=Elfogadás +decline=Elutasítás +playingRightNow=Játszom +abortGame=Játszma elvetése +gameAborted=Játszma elvetve +standard=Standard +unlimited=Végtelen +mode=Mód +casual=Egyszerű +rated=Értékelt +thisGameIsRated=Ez a játszma értékelve van +rematchOfferSent=Visszavágó felajánlva +rematchOfferAccepted=Visszavágó elfogadva +cancelRematchOffer=Visszavágó visszavonása +play=Játék +inbox=Beérkező üzenetek +chatRoom=Csevegő +composeMessage=Üzenet írása +sentMessages=Elküldött üzenetek +incrementInSeconds=Perceken belül kezdődik +freeOnlineChess=Ingyenes Online Sakk +spectators=Megfigyelők +nbWins=%s győzelem +nbLosses=%s vereség +nbDraws=%s döntetlen +exportGames=Játékok exportálása +color=Szín +eloRange=ÉLŐ intervallum +giveNbSeconds=Adj %s másodpercet +searchAPlayer=Keress egy játékost +whoIsOnline=Ki van itt +allPlayers=Minden játékos +namedPlayers=Játékosok névvel +premoveEnabledClickAnywhereToCancel=Előre beállított lépés - Kattints bárhova a visszavonáshoz +thisPlayerUsesChessComputerAssistance=Ez a játékos számítógépes sakkprogram segítséget használ +opening=Nyitás +takeback=Visszalépés +proposeATakeback=Visszalépés felajánlása +takebackPropositionSent=Visszalépés felajánlása elküldött +takebackPropositionDeclined=Visszalépés elutasítva +takebackPropositionAccepted=Visszalépés elfogadva +takebackPropositionCanceled=Visszalépés felajánlása visszavonva +yourOpponentProposesATakeback=Az ellenfeled egy visszalépést ajánlott fel +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Ingyenes online Sakk játék. Játsz Sakkot letisztult kezelőfelületen. Nem szükséges regisztráció, vagy pluginok és hirdetéseket sem kell nézned. Játsz Sakkot a számítógéppel, barátokkal vagy véletlenszerű ellenfelekkel. diff --git a/conf/messages.hy b/conf/messages.hy new file mode 100644 index 0000000000000..ff9e1b0454d52 --- /dev/null +++ b/conf/messages.hy @@ -0,0 +1,128 @@ +playWithAFriend=Խաղալ ընկերոջ հետ +inviteAFriendToPlayWithYou=Հրավիրել ընկերոջը խաղի +playWithTheMachine=Խաղալ համակարգչի հետ +challengeTheArtificialIntelligence=Ձեռնոց նետել արհեստական բանականությանը +toInviteSomeoneToPlayGiveThisUrl=Որևէ մեկին խաղի հրավիրելու համար հարկավոր է տալ նրան հետևյալ ինտերնետային հասցեն +gameOver=Խաղն ավարտված է +waitingForOpponent=Սպասում եմ հակառակորդին +waiting=Սպասում եմ +yourTurn=Ձեր հերթն է +aiNameLevelAiLevel=%s, մակարդակ՝ %s +level=Մակարդակ +toggleTheChat=Ցուցադրել/Պահել չաթի պատուհանը +chat=Չաթ +giveUp=Հանձնվել +resign=Հանձնվել +checkmate=Շախ և մատ +stalemate=Պատ +white=Սպիտակներ +black=Սևեր +createAGame=Ստեղծել նոր խաղ +random=Անորոշ +noGameAvailableRightNowCreateOne=Այս պահին խաղեր չկան, ստեղծել նորը +whiteIsVictorious=Սպիտակները հաղթեցին +blackIsVictorious=Սևերը հաղթեցին +playANewGame=Սկսել նոր խաղ +rematch=Կրկին խաղալ +playWithTheSameOpponentAgain=Խաղալ նույն հակառակորդի հետ +newOpponent=Նոր հակառակորդ +playWithAnotherOpponent=Խաղալ այլ հակառակորդի հետ +yourOpponentWantsToPlayANewGameWithYou=Ձեր հակառակորդը ուզում է կրկին խաղալ Ձեզ հետ +joinTheGame=Միանալ խաղին +youAreViewingThisGameAsASpectator=Դուք դիտում եք այս խաղը հանդիսատեսի կարգավիճակով +whitePlays=Խաղում են սպիտակները +blackPlays=Խաղում են սևերը +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Հակառակորդը լքել է խաղը։ Դուք կարող եք ստիպել նրան հանձնվել կամ սպասել նրան։ +makeYourOpponentResign=Ստիպել խաղը լքած հակառակորդին հանձնվել +forceResignation=Ստիպել հանձնվել +talkInChat=Զրուցել չաթում +theFirstPersonToComeOnThisUrlWillPlayWithYou=Առաջինը, ով կայցելի այս ինտերնետային հասցեն, կխաղա Ձեզ հետ։ +whiteCreatesTheGame=Սպիտակները ստեղծեցին խաղը +blackCreatesTheGame=Սևերը ստեղծեցին խաղը +whiteJoinsTheGame=Սպիտակները միացան խաղին +blackJoinsTheGame=Սևերը միացան խաղին +whiteResigned=Սպիտակները հանձնվեցին +blackResigned=Սևերը հանձնվեցին +whiteLeftTheGame=Սպիտակները լքեցին խաղը +blackLeftTheGame=Սևերը լքեցին խաղը +contact=Կապ +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Այստեղ ոչինչ չկա։ Եթե Ձեր կարծիքով սա ծրագրային սխալի հետևանք է, Դուք կարող եք ուղարկել էլ․ նամակ %s հասցեին +shareThisUrlToLetSpectatorsSeeTheGame=Տարածել այս հասցեն, որպեսզի հանդիսատեսները տեսնեն խաղի ընթացքը +replayAndAnalyse=Խաղի քննություն +flipBoard=Շրջել խաղատախտակը +threefoldRepetition=Եռապատիկ կրկնություն +claimADraw=Հայտարարել ոչ-ոքի +offerDraw=Առաջարկել ոչ-ոքի +draw=Ոչ-ոքի +nbConnectedPlayers=Միացած խաղացողների թիվը՝ %s +talkAboutChessAndDiscussLichessFeaturesInTheForum=Զրուցել շախմատի և Lichess-ի հնարավորությունների մասին ֆորումում +seeTheGamesBeingPlayedInRealTime=Հետևել այժմ օնլայն ընթացող խաղերին +gamesBeingPlayedRightNow=Այժմ օնլայն ընթացող խաղերը +viewAllNbGames=Տեսնել բոլոր %s խաղերը +viewNbCheckmates=Տեսնել %s մատերը +viewInFullSize=Մեծացնել չափը +logOut=Ելք +signIn=Մուտք +signUp=Գրանցվել +people=Մարդիկ +games=Խաղերը +forum=Ֆորում +chessPlayers=Խաղացողները +first=Առաջին +previous=Նախորդ +next=Հաջորդ +last=Վերջին +minutesPerSide=Րոպեներ ամեն կողմի համար +variant=Տեսակ +timeControl=Ժամանակի վերահսկողություն +start=Սկսել +username=Անուն +password=Գաղտնաբառ +haveAnAccount=Արդեն գրանցվե՞լ եք +allYouNeedIsAUsernameAndAPassword=Ձեզ հարկավոր է միայն անուն և գաղտնաբառ։ +learnMoreAboutLichess=Իմանլ ավելին Lichess-ի մասին +rank=Միավորներ +gamesPlayed=Խաղացած խաղեր +declineInvitation=Հետ կանչել հրավերը +cancel=Հերքել +timeOut=Ժամանակը ավարտվեց +drawOfferSent=Ոչ-ոքի առաջարկը ուղարկված է +drawOfferDeclined=Ոչ-ոքի առաջարկը չի ընդունվել +drawOfferAccepted=Ոչ-ոքի առաջարկը ընդունվել է +drawOfferCanceled=Ոչ-ոքի առաջարկը հետ է կանչվել +yourOpponentOffersADraw=Ձեր հակառակորդը առաջարկում է ոչ-ոքի +accept=Համաձայնել +decline=Մերժել +playingRightNow=Այս պահին խաղում են +abortGame=Կասեցնել խաղը +gameAborted=Խաղը կասեցված է +standard=Ստանդարտ +unlimited=Անսահմանափակ +mode=Տեսակը +casual=Առանց միավորների +rated=Միավորով +thisGameIsRated=Խաղը միավորներով է +rematchOfferSent=Վերախաղարկելու առաջարկը ուղարկված է +rematchOfferAccepted=Վերախաղարկելու առաջարկը ընդունված է +play=Խաղալ +inbox=Փոստարկղ +chatRoom=Չաթի պատուհան +composeMessage=Գրել հաղորդագրություն +sentMessages=ՈՒղարկված հաղորդագրություններ +incrementInSeconds=Ժամանակի աճը ըստ վայրկյանների +freeOnlineChess=Անճար օնլայն շախմատ +spectators=հանդիսատեսներ +nbWins=%s հաղթեց +nbLosses=%s պարտվեց +nbDraws=%s ոչոքի +exportGames=Էկսպորտ անել խաղերը +color=Գույն +eloRange=Elo միջակայք +giveNbSeconds=Տալ %s վայրկան +searchAPlayer=Որոնել խաղընկերոջ +whoIsOnline=Ովքե՞ր են օնլայն +allPlayers=Բոլոր խաղացողները +namedPlayers=Անվանակիր խաղացողները +premoveEnabledClickAnywhereToCancel=Նախորոք քայլ կատարելու հնարավորությունը ակտիվացված է, կարող եք այն անջատել՝ մկնիկի ստեղնակին սեղմելով +thisPlayerUsesChessComputerAssistance=Այղ խաղացողը դիմում է համակարգչի օգնությանը +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Անճար օնլայն շախմատ: Խաղացցեք հաճելի ինտերֆեյսով, առանց գրանցման և գովազդի: Խաղացեք համակարգչի, ընկերների կամ անծանոթների հետ: diff --git a/conf/messages.id b/conf/messages.id new file mode 100644 index 0000000000000..ba0b1c39a773b --- /dev/null +++ b/conf/messages.id @@ -0,0 +1,109 @@ +playWithAFriend=Bermain bersama seorang teman +inviteAFriendToPlayWithYou=Undang teman untuk bermain denganmu +playWithTheMachine=Bermain bersama komputer +challengeTheArtificialIntelligence=Tantang kecerdasan buatan +toInviteSomeoneToPlayGiveThisUrl=Untuk mengundang seseorang untuk bermain, berikan url berikut +gameOver=Game Over +waitingForOpponent=Menunggu lawan +waiting=Menunggu +yourTurn=Giliran anda +aiNameLevelAiLevel=%s level %s +level=Level +toggleTheChat=Ganti tampilan chat +chat=Chat +giveUp=Menyerah +resign=Mengundurkan diri +checkmate=Sekakmat +stalemate=Jalan buntu +white=Putih +black=Hitam +whiteIsVictorious=Putih menang +blackIsVictorious=Hitam menang +playANewGame=Mulai game baru +rematch=Ulang pertandingan +playWithTheSameOpponentAgain=Bermain bersama lawan yang sama +newOpponent=Penantang baru +playWithAnotherOpponent=Mainkan dengan penantang berbeda +yourOpponentWantsToPlayANewGameWithYou=Lawan anda ingin memulai pertandingan baru denganmu +joinTheGame=Ikuti pertandingan +youAreViewingThisGameAsASpectator=Anda melihat pertandingan ini sebagai penonton +whitePlays=Giliran putih +blackPlays=Giliran hitam +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Pemain lainnya telah meninggalkan permainan. Anda bisa memaksa pengunduran diri, atau menunggu dia. +makeYourOpponentResign=Buat lawan anda mengundurkan diri. +forceResignation=Pengunduran diri paksa +talkInChat=Bicara dalam chat +theFirstPersonToComeOnThisUrlWillPlayWithYou=Orang pertama yang datang ke url ini akan bermain dengan anda +whiteCreatesTheGame=Putih memulai permainan +blackCreatesTheGame=Hitam memulai permainan +whiteJoinsTheGame=Putih telah ikuti permainan +blackJoinsTheGame=Hitam telah ikuti permainan +whiteResigned=Putih mengundurkan diri +blackResigned=Hitam mengundurkan diri +whiteLeftTheGame=Putih telah menginggalkan pertandingan +blackLeftTheGame=Hitam telah meninggalkan pertandingan +contact=Kontak +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=idak ada yang perlu lihat di sini. Jika Anda pikir itu bug, Anda bisa mengirim email ke %s +shareThisUrlToLetSpectatorsSeeTheGame=Berbagi url ini untuk membiarkan penonton melihat permainan +replayAndAnalyse=Ulangan dan analisa +flipBoard=Balik papan permainan +threefoldRepetition=Pengulangan tiga tingkat +claimADraw=Klaim imbang +offerDraw=Tawar imbang +draw=Remis +nbConnectedPlayers=%s pemain tersambung +talkAboutChessAndDiscussLichessFeaturesInTheForum=Bicara tentang catur dan diskusikan fitur lichess di forum +seeTheGamesBeingPlayedInRealTime=Lihat permainan yang sedang berjalan saat ini +gamesBeingPlayedRightNow=Permainan yang sedang berjalan saat ini +viewAllNbGames=Lihat semua %s permainan +viewNbCheckmates=Lihat semua %s skakmat +viewInFullSize=Lihat dalam ukuran penuh +logOut=Keluar +signIn=Masuk +signUp=Daftar baru +people=Orang-orang +games=Permainan +forum=Forum +chessPlayers=Pemain catur +first=Pertama +previous=Sebelum +next=Berikut +last=Terakhit +minutesPerSide=Menit untuk tiap sisi +variant=Variasi +timeControl=Kontrol waktu +start=Mulai +username=Nama pengguna +password=Kata kunci +haveAnAccount=Punya akun? +allYouNeedIsAUsernameAndAPassword=Semua yang anda butuhkan adalah nama pengguna dan kata kunci. +learnMoreAboutLichess=Pelajari lebih lanjut tentang Lichess +rank=Pangkat +gamesPlayed=Permainan yang telah dimainkan +declineInvitation=Tolak undangan +cancel=Batal +timeOut=Waktu keluar +drawOfferSent=Tawaran imbang terkirim +drawOfferDeclined=Tawaran imbang ditolak +drawOfferAccepted=Tawaran imbang diterima +drawOfferCanceled=Tawarang undang dibatalkan +yourOpponentOffersADraw=Lawan anda mengundang imbang +accept=Terima +decline=Tolak +playingRightNow=Bermain saat ini +abortGame=Gugurkan permainan +gameAborted=Permainan digugurkan +standard=Standar +unlimited=Tak terbatas +mode=Modus +casual=Bebas +rated=Diperingkat +thisGameIsRated=Permainan ini diperingkat +rematchOfferSent=Tawaran permainan ulang terkirim +rematchOfferAccepted=Tawaran permainan ulang diterima +play=Mainkan +inbox=Kotak Masuk +chatRoom=Ruang Obrol +composeMessage=Tulis pesan +sentMessages=Pesan terkirim +incrementInSeconds=Dalam detik diff --git a/conf/messages.is b/conf/messages.is new file mode 100644 index 0000000000000..4bd21794b4fba --- /dev/null +++ b/conf/messages.is @@ -0,0 +1,102 @@ +playWithAFriend=Spila við vin +inviteAFriendToPlayWithYou=Bjóða vini að spila við þig +playWithTheMachine=Spila við tölvuna +challengeTheArtificialIntelligence=Skora á gervigreindina +toInviteSomeoneToPlayGiveThisUrl=Til að bjóða einhverjum að tefla, gefðu vefslóðina +gameOver=Taflið búið +waitingForOpponent=Bið eftir andstæðingi +waiting=Bið +yourTurn=Þú átt að gera +level=Stig +chat=Spjalla +giveUp=Gefast up +resign=Segja sig frá +checkmate=Skák og mát +white=Hvítt +black=Svart +createAGame=Búa til leik +whiteIsVictorious=Hvítur vinnur +blackIsVictorious=Svartur vinnur +playANewGame=Spila nýjan leik +rematch=Endurleikur +playWithTheSameOpponentAgain=Spila við sama andstæðing aftur +newOpponent=Nýr andstæðingur +playWithAnotherOpponent=Spila við annan andstæðing +yourOpponentWantsToPlayANewGameWithYou=Andstæðingur þinn vill spila nýjan leik við þig +joinTheGame=Koma inn í leikinn +youAreViewingThisGameAsASpectator=Þú ert að fylgjast með leiknum +whitePlays=Hvítur á leik +blackPlays=Svartur á leik +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Hinn spilarinn hefur yfirgefið leikinn. Þú getur krafist afsagnar, eða biðið eftir honum. +makeYourOpponentResign=Láttu andstæðingin gefast upp +forceResignation=Þvinga uppgjöf +talkInChat=Spjalla +theFirstPersonToComeOnThisUrlWillPlayWithYou=Fyrsti einstaklingur sem kemur á þessa vefslóð vill spila við þig +whiteCreatesTheGame=Hvítur skapar leikinn +blackCreatesTheGame=Svartur skapar leikinn +whiteJoinsTheGame=Hvítur kemur í leikinn +blackJoinsTheGame=Svartur kemur í leikinn +whiteResigned=Hvítur gefst upp +blackResigned=Svartur gefst upp +whiteLeftTheGame=Hvítur hefur yfirgefið leikinn +blackLeftTheGame=Svartur hefur yfirgefið leikinn +contact=Hafa samband +replayAndAnalyse=Endurspila og greina +viewGameStats=Skoða tölfræði leiksins +offerDraw=Bjóða jafntefli +draw=Jafntefli +seeTheGamesBeingPlayedInRealTime=Horfa á leiki í rauntíma +gamesBeingPlayedRightNow=Leikir í gangi núna +viewInFullSize=Skoða í fullri mynd +logOut=Skrá út +signIn=Skrá inn +signUp=Sækja um +people=Fólk +games=Leikir +chessPlayers=Skákmenn +first=Fyrst +previous=Áður +next=Næst +last=Síðast +minutesPerSide=Mínútur á lið +timeControl=Tímaskorður +start=Byrja +username=Notandanafn +password=Lykilorð +haveAnAccount=Hafa reikning +allYouNeedIsAUsernameAndAPassword=Allt sem þú þarft er notandanafn og lykilorð +learnMoreAboutLichess=Lærðu meira um Lichess +rank=Staða +gamesPlayed=Leikir spilaðir +declineInvitation=Hafna boði +cancel=Hætta við +timeOut=Leikhlé +drawOfferSent=boð um jafntefli sent +drawOfferDeclined=Boði um jafntefli hafnað +drawOfferAccepted=Boði um jafntefli samþykkt +drawOfferCanceled=Boði um jafntefli afturkallað +yourOpponentOffersADraw=Andstæðingur býður jafntefli +accept=Samþykkja +decline=Hafna +playingRightNow=Spilandi núna +abortGame=Hverfa frá leik +gameAborted=Horfið frá leik +standard=Staðlað +unlimited=Ótarkmarkað +rematchOfferSent=Boð um endurtekinn leik sent +rematchOfferAccepted=Boði um endurtekinn leik samþykkt +cancelRematchOffer=Afturkalla boð um endurleik +play=Spila +inbox=Innhólf +chatRoom=Spjallherbergi +composeMessage=Semja skilaboð +sentMessages=Send skilaboð +freeOnlineChess=Ókeypis vefskák +spectators=Áhorfendur +exportGames=Flytja út leiki +color=Litur +eloRange=Elo stig +whoIsOnline=Hver er virkur á netinu +allPlayers=Allir spilarar +namedPlayers=Nefndir spilarar +thisPlayerUsesChessComputerAssistance=Þessi spilari notar skáktölvu til hjálpar diff --git a/conf/messages.it b/conf/messages.it new file mode 100644 index 0000000000000..13152960909a3 --- /dev/null +++ b/conf/messages.it @@ -0,0 +1,138 @@ +playWithAFriend=Gioca con un amico +inviteAFriendToPlayWithYou=Invita un amico a giocare +playWithTheMachine=Gioca contro il computer +challengeTheArtificialIntelligence=Sfida il computer +toInviteSomeoneToPlayGiveThisUrl=Per invitare qualcuno a giocare passagli questo URL +gameOver=Game Over +waitingForOpponent=In attesa dell'avversario +waiting=In attesa +yourTurn=E' il tuo turno +aiNameLevelAiLevel=%s livello %s +level=Livello +toggleTheChat=Attiva/disattiva la chat +chat=Chat +giveUp=Resa +resign=Abbandona +checkmate=Scacco matto +stalemate=Stallo +white=Bianco +black=Nero +createAGame=Crea una partita +random=Casuale +noGameAvailableRightNowCreateOne=Al momento nessuna partita è disponibile, creane una! +whiteIsVictorious=Vince il Bianco +blackIsVictorious=Vince il Nero +playANewGame=Gioca una nuova partita +rematch=Rivincita +playWithTheSameOpponentAgain=Gioca nuovamente contro lo stesso avversario +newOpponent=Nuovo avversario +playWithAnotherOpponent=Gioca con un altro avversario +yourOpponentWantsToPlayANewGameWithYou=Il tuo avversario vuole giocare una nuova partita con te +joinTheGame=Entra nel gioco +youAreViewingThisGameAsASpectator=Stai visualizzando questa partita come spettatore +whitePlays=Il Bianco gioca +blackPlays=Il Nero gioca +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Il tuo avversario ha abbandonato il gioco. Puoi costringere all'abbandono, o aspettare il tuo avversiario. +makeYourOpponentResign=Costringi ad abbandonare il tuo avversario +forceResignation=Costringi all'abbandono +talkInChat=Parla in chat +theFirstPersonToComeOnThisUrlWillPlayWithYou=La prima persona che utilizzerà questo URL giocherà con te +whiteCreatesTheGame=Bianco ha creato la partita +blackCreatesTheGame=Nero ha creato la partita +whiteJoinsTheGame=Bianco si è unito alla partita +blackJoinsTheGame=Nero si è unito alla partita +whiteResigned=Bianco ha abbandonato la partita +blackResigned=Nero ha abbandonato la partita +whiteLeftTheGame=Bianco ha lasciato la partita +blackLeftTheGame=Nero ha lasciato la partita +contact=Contatto +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Nulla da vedere qui. Se credi possa trattarsi di un bug, puoi mandare una mail a %s +shareThisUrlToLetSpectatorsSeeTheGame=Condividi questo URL per permettere ad eventuali spettatori di visualizzare la partita +replayAndAnalyse=Replay e analizza +viewGameStats=Visualizza le statistiche della partita +flipBoard=Cambia lato +threefoldRepetition=Triplice ripetizione +claimADraw=Dichiara una patta +offerDraw=Offerta di patta +draw=Patta +nbConnectedPlayers=%s giocatori collegati +talkAboutChessAndDiscussLichessFeaturesInTheForum=Discuti di scacchi e delle caratteristiche di lichess sul forum +seeTheGamesBeingPlayedInRealTime=Visualizza le partite in corso in tempo reale +gamesBeingPlayedRightNow=Partite giocate al momento +viewAllNbGames=Visualizza tutte le %s partite +viewNbCheckmates=Visualizza %s scacco matto +viewInFullSize=Visualizza a schermo intero +logOut=Esci +signIn=Entra +signUp=Registrati +people=Persone +games=Partite +forum=Forum +chessPlayers=Giocatori +first=Primo +previous=Precedente +next=Prossimo +last=Ultimo +minutesPerSide=Minuti per lato +variant=Variante +timeControl=Controllo del tempo +start=Inizia +username=Username +password=Password +haveAnAccount=Hai un account? +allYouNeedIsAUsernameAndAPassword=Username e password, non hai bisogno d'altro. +learnMoreAboutLichess=Altre informazioni su Lichess +rank=Livello +gamesPlayed=Partite giocate +declineInvitation=Rifiuta invito +cancel=Cancella +timeOut=Tempo scaduto +drawOfferSent=Offerta di patta inviata +drawOfferDeclined=Offerta di patta declinata +drawOfferAccepted=Offerta di patta accettata +drawOfferCanceled=Offerta della patta annullata +yourOpponentOffersADraw=Il tuo avversario offre la patta +accept=Accetta +decline=Declina +playingRightNow=In gioco al momento +abortGame=Lascia la partita +gameAborted=Partita interrotta +standard=Standard +unlimited=Illimitato +mode=Modalità +casual=Non-classificata +rated=Classificata +thisGameIsRated=Questa partita è classificata +rematchOfferSent=Invito per una nuova partita +rematchOfferAccepted=Offerta accettata +cancelRematchOffer=Rifiuta offerta di rivincita +play=Gioca +inbox=Casella postale +chatRoom=Discussioni... +composeMessage=Componi messaggio +sentMessages=Messaggi inviati +incrementInSeconds=Aumenta i secondi +freeOnlineChess=Scacchi online gratis +spectators=Spettatori +nbWins=%s vinte +nbLosses=%s perse +nbDraws=%s patte +exportGames=Esporta le partite +color=Colore +eloRange=Punteggio Elo +giveNbSeconds=Indica %s i secondi +searchAPlayer=Cerca un Avversario +whoIsOnline=Chi è Online +allPlayers=Tutti i giocatori +namedPlayers=Singoli giocatori +premoveEnabledClickAnywhereToCancel=Mossa anticipata attiva - Per cancellare clicca in qualunque punto +thisPlayerUsesChessComputerAssistance=Questo giocatore si fa aiutare da un computer +opening=Inizio +takeback=ritirare la mossa +proposeATakeback=propone di ritirare la mossa +takebackPropositionSent=inviata la richiesta di ritirare la mossa +takebackPropositionDeclined=rifiutata la proposta di ritirare la mossa +takebackPropositionAccepted=accettata la proposta di ritirare la mossa +takebackPropositionCanceled=cancellata la proposta di ritirare la mossa +yourOpponentProposesATakeback=il tuo avversario propone di ritirare la mossa +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Partita di scacchi online gratis. Gioca subito a scacchi con un'interfaccia semplice. Nessuna registrazione e nessun plug-in richiesti. Zero pubblicità. Gioca a scacchi contro il computer, contro gli amici o contro avversari sconosciuti. diff --git a/conf/messages.ja b/conf/messages.ja new file mode 100644 index 0000000000000..c359021b5f5c7 --- /dev/null +++ b/conf/messages.ja @@ -0,0 +1,129 @@ +playWithAFriend=友達と対局する +inviteAFriendToPlayWithYou=友達をあなたとの対局に招待する +playWithTheMachine=AIと対局する +challengeTheArtificialIntelligence=AIと対局する +toInviteSomeoneToPlayGiveThisUrl=人を対局に招待したいならこのURLを挙げてください +gameOver=ゲームオーバー +waitingForOpponent=相手を待機中 +waiting=待機中 +yourTurn=あなたの手番です +aiNameLevelAiLevel=%s レべル%s +level=レベル +toggleTheChat=チャットのオン・オフ +chat=チャット +giveUp=諦める +resign=投了する +checkmate=チェックメイト +stalemate=ステイルメイト +white=白 +black=黒 +createAGame=対局を作成する +random=ランダム +noGameAvailableRightNowCreateOne=現在参加できる対局はありません。対局を作成してください。 +whiteIsVictorious=白の勝ちです +blackIsVictorious=黒の勝ちです +playANewGame=新しい対局を指す +rematch=再対局 +playWithTheSameOpponentAgain=もう一度同じ相手と対局する +newOpponent=新しい相手 +playWithAnotherOpponent=別の相手と対局する +yourOpponentWantsToPlayANewGameWithYou=相手が再対局を願っています +joinTheGame=対局を参加する +youAreViewingThisGameAsASpectator=この対局を観覧者で観ています +whitePlays=白が指しました +blackPlays=黒が指しました +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=敵が対局からいなくなりました。強制投了、または相手が戻るまで待機することが出来ます。 +makeYourOpponentResign=相手を投了させる +forceResignation=強制投了 +talkInChat=チャットで喋る +theFirstPersonToComeOnThisUrlWillPlayWithYou=このURLを最初にクリックした人があなたと対局します。 +whiteCreatesTheGame=白が対局を作成しました +blackCreatesTheGame=黒が対局を作成しました +whiteJoinsTheGame=白が対局に参加しました +blackJoinsTheGame=黒が対局に参加しました +whiteResigned=白が投了しました +blackResigned=黒が投了しました +whiteLeftTheGame=白が対局からいなくなりました +blackLeftTheGame=黒が対局からいなくなりました +contact=連絡 +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=ここには何もありません。バグが発生したと思う場合にはこのメルアドに連絡してください %s +shareThisUrlToLetSpectatorsSeeTheGame=観覧者が対局を観たいならこのURLを投稿してください +replayAndAnalyse=リプレイと解析 +flipBoard=盤をひっくり返す +threefoldRepetition=スリーフォールド・レピティション +claimADraw=引き分けを申し込む +offerDraw=引き分けを提供する +draw=引き分け +nbConnectedPlayers=現在%s人接続中 +talkAboutChessAndDiscussLichessFeaturesInTheForum=掲示板でチェスとかリチェスについて語る +seeTheGamesBeingPlayedInRealTime=リアルタイムで対局を観る +gamesBeingPlayedRightNow=現在対局中 +viewAllNbGames=全ての%s対局を見る +viewNbCheckmates=全ての%sチェックメイトを見る +viewInFullSize=フルサイズで見る +logOut=ログアウト +signIn=ログイン +signUp=登録 +people=プレイヤー +games=対局 +forum=掲示板 +chessPlayers=チェスプレイヤー +first=最初 +previous=先 +next=次 +last=最後 +minutesPerSide=各側の持ち時間 +variant=バリアント +timeControl=時間限度調整 +start=開始 +username=ユーザー名 +password=パスワード +haveAnAccount=アカウントをお持ちなさいますか? +allYouNeedIsAUsernameAndAPassword=ユーザー名とパスワードだけ必要です +learnMoreAboutLichess=リチェスについて +rank=ランク +gamesPlayed=対局数 +declineInvitation=招待を断る +cancel=キャンセル +timeOut=時間切れ +drawOfferSent=引き分けの申し込みを送信しました +drawOfferDeclined=引き分けの申し込みが断られました +drawOfferAccepted=引き分けの申し込みに合意を得ました +drawOfferCanceled=引き分けの申し込みをキャンセルしました +yourOpponentOffersADraw=相手が引き分けを申し込みました +accept=合意 +decline=断る +playingRightNow=今対局中 +abortGame=対局をアボートする +gameAborted=対局をアボートしました +standard=普通 +unlimited=無制限 +mode=モード +casual=カジュアル +rated=レート戦 +thisGameIsRated=この対局はレート戦です。 +rematchOfferSent=再対局の申し込みを送信しました +rematchOfferAccepted=再対局の申し込みを受け入れました +cancelRematchOffer=再対局の申し込みをキャンセルする +play=対局 +inbox=受信箱 +chatRoom=チャットルーム +composeMessage=メッセージを作成する +sentMessages=送信済みのメッセージ +incrementInSeconds=秒で増加する +freeOnlineChess=無料オンラインチェス +spectators=観覧者数: +nbWins=%sの勝ち +nbLosses=%sの負け +nbDraws=%sの引き分け +exportGames=対局をエクスポートする +color=色 +eloRange=イロレーティング範囲 +giveNbSeconds=%s秒を与える +searchAPlayer=プレイヤー検索 +whoIsOnline=オンライン中のプレイヤー +allPlayers=全プレイヤー +namedPlayers=登録しているプレイヤー +premoveEnabledClickAnywhereToCancel=次の指しを予約しました-キャンセルするならどこかをクリックしてください +thisPlayerUsesChessComputerAssistance=このプレイヤーはチェス・ソフトを使用しています +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=無料オンラインチェスゲーム。今すぐ綺麗なインターフェースでチェス対局することが出来ます。登録、プラグイン無用。広告なし。AI、友達、それともランダムな相手とチェスの対局することが出来ます。 diff --git a/conf/messages.ka b/conf/messages.ka new file mode 100644 index 0000000000000..2782268b358c0 --- /dev/null +++ b/conf/messages.ka @@ -0,0 +1,119 @@ +playWithAFriend=ეთამაშე მეგობარს +inviteAFriendToPlayWithYou=მოიწვიე მეგობარი შენთან სათამაშოთ +playWithTheMachine=ეთამაშე კომპიუტერს +challengeTheArtificialIntelligence=შეეჯიბრე ხელოვნურ ინტელექტს +toInviteSomeoneToPlayGiveThisUrl=ოპონენტის მოსაწვევად, გაუგზავნეთ მას ეს მისამართი +gameOver=თამაში დასრულებულია +waitingForOpponent=ველოდებით ოპონენტს +waiting=ველოდებით +yourTurn=თქვენი სვლაა +aiNameLevelAiLevel=%s დონე %s +level=დონე +toggleTheChat=გამოვაჩინოთ სასაუბრო +chat=სასაუბრო +giveUp=დანებება +resign=დანებება +checkmate=შამათი +stalemate=გამოუვალი სიტუაცია +white=თეთრი +black=შავი +createAGame=თამაშის შექმნა +random=შემთხვევით +noGameAvailableRightNowCreateOne=ხელმისაწვდომი თამაშები არ არის, შექმენი თავად! +whiteIsVictorious=თეთრი გამარჯვებულია +blackIsVictorious=შავი გამარჯვებულია +playANewGame=ახალი თამაშის დაწყება +rematch=რევანში +playWithTheSameOpponentAgain=იგივე ოპონენტთან თამაშის თავიდან დაწყება +newOpponent=ახალი ოპონენტი +playWithAnotherOpponent=იგივე ოპონენტთან თამაშის დაწყება +yourOpponentWantsToPlayANewGameWithYou=თქვენს ოპონენტს სურს თქვენთან ახალი თამაშის დაწყება +joinTheGame=თამაშში ჩართვა +youAreViewingThisGameAsASpectator=თქვენ უყურებთ თამაშს, როგორც მაყურებელი +whitePlays=თეთრის სვლაა +blackPlays=შავის სვლაა +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=მეორე მოთამაშემ თამაში დატოვა. თქვენ შეგიძლიათ აიძულოთ დანებება, ან დაელოდოთ მას. +makeYourOpponentResign=შევთავაზოთ ოპონენტს დანებება +forceResignation=ვაიძულოთ ოპონენტს დანებება +talkInChat=სასაუბროში საუბრის დაწყება +theFirstPersonToComeOnThisUrlWillPlayWithYou=პირველი პიროვნება, ვინც შემოვა ამ მისამართზე, დაიწყებს თქვენთან თამაშს +whiteCreatesTheGame=თეთრმა შექმნა თამაში +blackCreatesTheGame=შავმა შექმნა თამაში +whiteJoinsTheGame=თეთრი შეურთდა თამაშს +blackJoinsTheGame=შავი შეურთდა თამაშს +whiteResigned=თეთრი დანებდა +blackResigned=შავი დანებდა +whiteLeftTheGame=თეთრმა დატოვა თამაში +blackLeftTheGame=შავმა დატოვა თამაში +contact=კონტაქტი +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=არ არაფერი არ უნდა ჩანდეს. თუ თქვენ ფიქრობთ, რომ მოხდა შეცდომა, გამოგვიგზავნეთ მეილი აქ %s +shareThisUrlToLetSpectatorsSeeTheGame=მიეცით ეს მისამართი მაყურებლებს +replayAndAnalyse=გამეორება და ანალიზი +flipBoard=დაფის დანაწევრება +threefoldRepetition=სამმაგი გამეორება +claimADraw=მოვითხოვოთ ფრე +offerDraw=შევთავაზოთ ფრე +draw=ფრე +nbConnectedPlayers=%s შემოსული მოთამაშე +talkAboutChessAndDiscussLichessFeaturesInTheForum=ისაუბრეთ ჭადრაკზე და განიხილეთ lichess- ის ფუნქციები ფორუმზე +seeTheGamesBeingPlayedInRealTime=მიმდინარე თამაშების ნახვა +gamesBeingPlayedRightNow=ამ მომენტში მიმდინარე თამაშები +viewAllNbGames=ყველა %s თამაშის ნახვა +viewNbCheckmates=ყველა %s შამათის ნახვა +viewInFullSize=მთლიან მონიტორზე ნახვა +logOut=გამოსვლა +signIn=შესვლა +signUp=რეგისტრაცია +people=მოთამაშე +games=თამაშები +forum=ფორუმი +chessPlayers=ჭადრაკის მოთამაშეები +first=პირველი +previous=წინა +next=შემდეგი +last=უკანასკნელი +minutesPerSide=წუთი თითოეული მხარისთვის +variant=ვარიანტი +timeControl=დროის კონტროლი +start=დაწყება +username=მომხმარებლის სახელი +password=პაროლი +haveAnAccount=უკვე გაქვთ ანგარიში? +allYouNeedIsAUsernameAndAPassword=თქვენ მხოლოდ გჭირდებათ მომხმარებლის სახელი და პაროლი +learnMoreAboutLichess=მეტი Lichess - ის შესახებ +rank=რანგი +gamesPlayed=დასრულებული თამაშები +declineInvitation=მოწვევის უარყოფა +cancel=გაუქმება +timeOut=დრო ამოიწერუა +drawOfferSent=ფრის შეთავაზება გაგზავნილია +drawOfferDeclined=ფრის შეთავაზება უარყოფილია +drawOfferAccepted=ფრის შეთავაზება მიღებულია +drawOfferCanceled=ფრის შეთავაზება გაუქმებულია +yourOpponentOffersADraw=თქვენი ოპონენტი გთავაზობთ ფრეს +accept=დათანხმება +decline=უარყოფა +playingRightNow=თამაშობს ამ დროს +abortGame=თამაშის შეწყვეტა +gameAborted=თამაში შეწყვეტილია +standard=სტანდარტი +unlimited=შეუზღუდავი +mode=რეჟიმი +casual=ჩვეულებრივი +rated=შეფასებული +thisGameIsRated=ეს თამაში ფასდება +rematchOfferSent=რევანშის შეთავაზება გაგზავნილია +rematchOfferAccepted=რევანშის შეთავაზება მიღებულია +play=თამაშის დაწყება +inbox=მიღებული +chatRoom=სასაუბრო ოთახი +composeMessage=შეტყობინების შექმნა +sentMessages=გაგზავნილი შეტყობინებები +incrementInSeconds=ზრდა წამებში +freeOnlineChess=უფასო ონლაინ ჭადრაკი +spectators=მაყურებლები +nbWins=%s გამარჯვება +nbLosses=%s მარცხი +nbDraws=%s ფრე +exportGames=თამაშის ექსპორტი +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=უფასო ონლაინ ჭადრაკი. ითამაშე ჭადრაკი სუფთა, სადა ინტერფეისით. არანაირი რეგისტრაცია, არანაირი რეკლამა, არანაირი პლაგინი საჭირო არ არის. ეთამაშე ჭადრაკი კომპიუტერს, მეგობარს ან შემთხვევით ოპონენტს diff --git a/conf/messages.lt b/conf/messages.lt new file mode 100644 index 0000000000000..5cb67d2ad2cd8 --- /dev/null +++ b/conf/messages.lt @@ -0,0 +1,132 @@ +playWithAFriend=Žaisti prieš draugą +inviteAFriendToPlayWithYou=Pakviesti draugą žaisti kartu +playWithTheMachine=Žaisti prieš kompiuterį +challengeTheArtificialIntelligence=Mesti iššūkį dirbtiniam intelektui +toInviteSomeoneToPlayGiveThisUrl=Norint pakviestį ką nors žaisti, nusiųsk šią nuorodą +gameOver=Žaidimas baigtas +waitingForOpponent=Laukiama priešininko +waiting=Laukiama +yourTurn=Tavo ėjimas +aiNameLevelAiLevel=%s lygis %s +level=Lygis +toggleTheChat=Įgalinti pokalbį +chat=Pokalbis +giveUp=Pasiduoti +resign=Atsisakyti žaisti +checkmate=Šachas ir matas +stalemate=Patas +white=Baltieji +black=Juodieji +createAGame=Sukurti žaidimą +random=Atsitiktinis +noGameAvailableRightNowCreateOne=Šiuo metu nėra žaidimų, sukurkite naują! +whiteIsVictorious=Baltieji laimi +blackIsVictorious=Juodieji laimi +playANewGame=Žaisti naują žaidimą +rematch=Revanšas +playWithTheSameOpponentAgain=Žaisti su tuo pačiu priešininku dar kartą +newOpponent=Naujas priešininkas +playWithAnotherOpponent=Žaisti su nauju priešininku +yourOpponentWantsToPlayANewGameWithYou=Tavo priešininkas nori žaisti iš naujo +joinTheGame=Prisijungti prie žaidimo +youAreViewingThisGameAsASpectator=Jūs esate šio žaidimo stebėtojas +whitePlays=Baltųjų eilė +blackPlays=Juodųjų eilė +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Priešininkas paliko žaidimą. Tu gali jo palaukti arba pasirinkti save laimėtoju. +makeYourOpponentResign=Nelaukti priešininko +forceResignation=Priverstinis pralaimėjimas +talkInChat=Kalbėti +theFirstPersonToComeOnThisUrlWillPlayWithYou=Pirmasis žmogus prisijungęs šiuo adresu žais su tavimi. +whiteCreatesTheGame=Baltieji sukūrė žaidimą +blackCreatesTheGame=Juodieji sukūrė žaidimą +whiteJoinsTheGame=Baltieji prisijungė +blackJoinsTheGame=Juodieji prisijungė +whiteResigned=Baltieji atsisakė tęsti +blackResigned=Juodieji atsisakė tęsti +whiteLeftTheGame=Baltieji paliko žaidimą +blackLeftTheGame=Juodieji paliko žaidimą +contact=Susisiekti +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Nėra čia ką pamatyti. Jei manote, kad tai klaida, galite nusiųsti el. laišką į %s +shareThisUrlToLetSpectatorsSeeTheGame=Pasidalinkite šiuo adresu su žiūrovais +replayAndAnalyse=Pakartoti ir analizuoti +viewGameStats=Žiūrėti žaidimo statistiką +flipBoard=Apsukti lentą +threefoldRepetition=Pakartoti tris kartus +claimADraw=Pareikšti lygiasias +offerDraw=Siūlyti lygiasias +draw=Lygiosios +nbConnectedPlayers=%s prisijungę žaidėjai +talkAboutChessAndDiscussLichessFeaturesInTheForum=Diskutuokite apie šachmatus ir puslapio savybes forume +seeTheGamesBeingPlayedInRealTime=Peržiūrėti šiuo metu vykstančius žaidimus +gamesBeingPlayedRightNow=Žaidimai yra žaidžiami dabar +viewAllNbGames=Peržiūrėti visus %s žaidimus +viewNbCheckmates=Peržiūrėti %s matus +viewInFullSize=Žiūrėti visu dydžiu +logOut=Atsijungti +signIn=Prisijungti +signUp=Prisiregistruoti +people=Žmonės +games=Žaidimai +forum=Forumas +chessPlayers=Šachmatų žaidėjai +first=Pirmas +previous=Praėjusysis +next=Kitas +last=Paskutinis +minutesPerSide=Leidžiamas minučių skaičius. +variant=Variantas +timeControl=Laiko kontroliavimas +start=Pradėti +username=Prisijungimo Vardas +password=Slaptažodis +haveAnAccount=Turite vartotoją? +allYouNeedIsAUsernameAndAPassword=Viskas ko reikia yra jūsų pasirinktas vardas ir slaptažodis. +learnMoreAboutLichess=Sužinokite daugiau apie Lichess +rank=Rangas +gamesPlayed=Sužaisti žaidimai +declineInvitation=Atšaukti kvietimą +cancel=Atšaukti +timeOut=Baigėsi laikas +drawOfferSent=Lygiųjų pasiūlymas išsiųstas +drawOfferDeclined=Lygiųjų pasiūlymas atmestas +drawOfferAccepted=Lygiųju pasiūlymas priimtas +drawOfferCanceled=Lygiųjų pasiūlymas atšauktas +yourOpponentOffersADraw=Jūsų priešininkas siūlo lygiasias +accept=Sutikti +decline=Atsisakyti +playingRightNow=Žaidžia šiuo metu +abortGame=Atšaukti žaidimą +gameAborted=Žaidimas atšaukas +standard=Standartinis +unlimited=Neribotas +mode=Būdas +casual=Įprastas +rated=Įvertintas +thisGameIsRated=Šis žaidimas įvertintas +rematchOfferSent=Revanšo pasiūlymas išsiųstas +rematchOfferAccepted=Revanšo pasiūlymas priimtas +cancelRematchOffer=Atšaukti revanšo pasiūlymą +play=Žaisti +inbox=Įeinantys +chatRoom=Pokalbiai +composeMessage=Rašyti žinutę +sentMessages=Išsiųstos žinutės +incrementInSeconds=Didinti sekundėmis +freeOnlineChess=Nemokami šachmatai tinkle +spectators=Stebėtojai: +nbWins=%s laimėjo +nbLosses=%s pralaimėjo +nbDraws=%s lygiosios +exportGames=Eksportuoti žaidimus +color=Spalva +eloRange=Elo lygis +giveNbSeconds=Duoti %s sekundes +searchAPlayer=Jieškoti žaidejo +whoIsOnline=Kas yra online +allPlayers=Visi žaidėjai +namedPlayers=Vardiniai žaidėjai +premoveEnabledClickAnywhereToCancel=Išankstinis ėjimas - Pažymėkite ka nors norėdami atšaukti +thisPlayerUsesChessComputerAssistance=Šis žaidejas naudojasi kompiuterine pagalba žaidime +opening=Atidarymas +takeback=Atsiimti +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Nemokamas šachmatų žaidimas tinkle. Žaiskite šachmatais patrauklioje vartotojo sąsajoje. Nebūtina registracija, nėra reklamos, nereikia jokių priedų. Žaiskite šachmatais prieš kompiuterį, su draugu arba su atsitiktiniais varžovais. diff --git a/conf/messages.lv b/conf/messages.lv new file mode 100644 index 0000000000000..8f22926d8fa6a --- /dev/null +++ b/conf/messages.lv @@ -0,0 +1,131 @@ +playWithAFriend=Spēle ar draugu +inviteAFriendToPlayWithYou=Ielūdz draugu spēlēt ar tevi +playWithTheMachine=Spēle ar datoru +challengeTheArtificialIntelligence=Izaicināt mākslīgo intelektu +toInviteSomeoneToPlayGiveThisUrl=Lai uzaicinātu kādu spēlēt, dod šo šaiti +gameOver=Spēles beigas +waitingForOpponent=Gaidām pretinieku +waiting=Gaidām +yourTurn=Tavs gājiens +aiNameLevelAiLevel=%s līmenis %s +level=Līmenis +toggleTheChat=Pārslēgt čatu +chat=Čats +giveUp=Padoties +resign=Atslēgties +checkmate=Šahs un mats +stalemate=Pats +white=Baltie +black=Melnie +createAGame=Izveidot spēli +random=Nejaušs +noGameAvailableRightNowCreateOne=Pagaidām nav pieejamās spēles, izveidojiet jaunu! +whiteIsVictorious=Baltie uzvarēja +blackIsVictorious=Melnie uzvarēja +playANewGame=Sākt no jauna +rematch=Revanšs +playWithTheSameOpponentAgain=Atkal spēlēt ar to pašu pretinieku +newOpponent=Jauns pretinieks +playWithAnotherOpponent=Spēlēt ar citu pretinieku +yourOpponentWantsToPlayANewGameWithYou=Tavs pretinieks vēlas spēlēt ar tevi no jauna +joinTheGame=Pievienoties spēlei +youAreViewingThisGameAsASpectator=Jūs skatāt šo spēli kā skatītājs +whitePlays=Baltie spēlē +blackPlays=Melnie spēlē +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Tavs pretinieks ir atstājis spēli. Tu vari atslēgt viņu vai gaidīt. +makeYourOpponentResign=Atslēgt pretinieku +forceResignation=Veikt atslēgšanu +talkInChat=Runā čatā +theFirstPersonToComeOnThisUrlWillPlayWithYou=Pirmais cilvēks, kas izmantos šo saiti sāks spēlēt ar tevi +whiteCreatesTheGame=Baltie izveido spēli +blackCreatesTheGame=Melnie izveido spēli +whiteJoinsTheGame=Baltie pievienojas spēlei +blackJoinsTheGame=Melnie pievienojas spēlei +whiteResigned=Baltie atslēdzas +blackResigned=Melnie atslēdzas +whiteLeftTheGame=Baltie izgāja no spēles +blackLeftTheGame=Melnie izgāja no spēles +contact=Kontakti +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Šeit nekā nav. Ja tu domā, ka tā ir kļūda, tad droši raksti mums uz %s +shareThisUrlToLetSpectatorsSeeTheGame=Padalies ar šo saiti, lai ļautu skatītājiem redzēt spēli +replayAndAnalyse=Izspēlē un analizē +viewGameStats=Skatīt spēles statistiku +flipBoard=Nomainīt pusi +threefoldRepetition=Trīskārša atkārtošanās +claimADraw=Nozīmēt neizšķirtu +offerDraw=Piedāvāt neizšķirtu +draw=Neizšķirts +nbConnectedPlayers=%s pieslēgušies spēlētāji +talkAboutChessAndDiscussLichessFeaturesInTheForum=Parunāt par šahu un diskutēt par lichess īpašībām forumā +seeTheGamesBeingPlayedInRealTime=Skatīties kādas spēles tiek spēlētas +gamesBeingPlayedRightNow=Spēles kuras patlaban tiek spēlētas +viewAllNbGames=Apskatīt visas %s spēles +viewNbCheckmates=Apskatīt %s matus +viewInFullSize=Skatīt pilnā izmērā +logOut=Atslēgties +signIn=Pieslēgties +signUp=Reģistrēties +people=Cilvēki +games=Spēles +forum=Forums +chessPlayers=Šaha spēlētāji +first=Pirmais +previous=Iepriekšējais +next=Nākamais +last=Pēdējais +minutesPerSide=Minūtes spēlei +variant=Variants +timeControl=Laika kontrole +start=Starts +username=Lietotājvārds +password=Parole +haveAnAccount=Vai tev ir konts? +allYouNeedIsAUsernameAndAPassword=Viss kas nepieciešams ir lietotājvārds un parole. +learnMoreAboutLichess=Uzzināt vairāk par Lichess. +rank=Rangs +gamesPlayed=Izspēlētās spēles +declineInvitation=Noraidīt aicinājumu +cancel=Atcelt +timeOut=Laiks beidzies +drawOfferSent=Neizšķirta piedāvājums nosūtīts +drawOfferDeclined=Neizšķirta piedāvājums noraidīts +drawOfferAccepted=Neizšķirta piedāvājums pieņemts +drawOfferCanceled=Neizšķirta piedāvājums atcelts +yourOpponentOffersADraw=Tavs pretinieks piedāvā neizšķirtu +accept=Pieņemt +decline=Noraidīt +playingRightNow=Patlaban spēlē +abortGame=Atcelt spēli +gameAborted=Spēle atcelta +standard=Standarta +unlimited=Bezgalīga +mode=Režīms +casual=Gadījuma +rated=Vērtēta +thisGameIsRated=Šī spēle tiek vērtēta +rematchOfferSent=Remača piedāvājums nosūtīts +rematchOfferAccepted=Remača piedāvājums pieņemts +cancelRematchOffer=Atcelt remača piedāvājumu +play=Spēlēt +inbox=Ziņas +chatRoom=Čata istaba +composeMessage=Rakstīt vēstuli +sentMessages=Nosūtītās vēstules +incrementInSeconds=Pieaugums sekundēs +freeOnlineChess=Bezmaksas šahs onlainā. +spectators=Skatītāji +nbWins=%s uzvarēja +nbLosses=%s zaudēja +nbDraws=%s neizšķirti +exportGames=Eksportēt spēles +color=Krāsa +eloRange=Elo diapazons +giveNbSeconds=Dot %s sekundes +searchAPlayer=Meklēt spēlētāju +whoIsOnline=Kurš ir tiešsaistē +allPlayers=Visi spēlētāji +namedPlayers=Spēlētāji ar vārdu +premoveEnabledClickAnywhereToCancel=Priekšgājiens iespējots - Noklikšķiniet jebkur, lai atceltu +thisPlayerUsesChessComputerAssistance=Šis spēlētājs izmanto šaha dator-asistentu +opening=Atklātne +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Bezmaksas onlaina šahs, spēlēt šahu tagad ar skaidru interfeisu. Bez reģistrācijas, bez reklāmas, nav vajadzīgi plagini. Spēlēt šahu pret datoru, draugu vai nejaušu pretinieku. diff --git a/conf/messages.mk b/conf/messages.mk new file mode 100644 index 0000000000000..4e2b4d33cb9ad --- /dev/null +++ b/conf/messages.mk @@ -0,0 +1,127 @@ +playWithAFriend=Играј со пријател +inviteAFriendToPlayWithYou=Покани пријател да игра со тебе +playWithTheMachine=Играј со компјутерот +challengeTheArtificialIntelligence=Предизвикај ја вештачката интелегенција +toInviteSomeoneToPlayGiveThisUrl=Да поканиш некој да игра, прати му го овој линк +gameOver=Крај на играта +waitingForOpponent=Се чека противникот +waiting=Почекај +yourTurn=Ти си на ред +aiNameLevelAiLevel=%s ниво %s +level=Ниво +toggleTheChat=Вклучи прозорец за разговор +chat=Разговор +giveUp=Предади се +resign=Откажи се +checkmate=Шах-мат +stalemate=Пат +white=Бел +black=Црн +createAGame=Креирај игра +random=Случаен +noGameAvailableRightNowCreateOne=Моментално нема достапни игри, креирај! +whiteIsVictorious=Белиот е победник +blackIsVictorious=Црниот е победник +playANewGame=Играј нова игра +rematch=Реванш +playWithTheSameOpponentAgain=Повторно играј со истиот противник +newOpponent=Нов противник +playWithAnotherOpponent=Играј со друг противник +yourOpponentWantsToPlayANewGameWithYou=Твојот противник сака нова игра со тебе +joinTheGame=Приклучи се на играта +youAreViewingThisGameAsASpectator=Ја следиш оваа игра како набљудувач +whitePlays=Белиот е на ред +blackPlays=Црниот е на ред +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Другиот играч ја напушти играта. Можеш да го присилиш да се предаде или да го почекаш. +makeYourOpponentResign=Присили го противникот да се предаде +forceResignation=Присилно предавање +talkInChat=Започни разговор +theFirstPersonToComeOnThisUrlWillPlayWithYou=Првата личност која ќе го следи овој линк ќе игра со тебе +whiteCreatesTheGame=Белиот ја креира играта +blackCreatesTheGame=Црниот ја креира играта +whiteJoinsTheGame=Белиот се приклучува во играта +blackJoinsTheGame=Црниот се приклучува во играта +whiteResigned=Белиот се откажа +blackResigned=Црниот се откажа +whiteLeftTheGame=Белиот ја напушти играта +blackLeftTheGame=Црниот ја напушти играта +contact=Контакт +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Нема што да се види овде. Ако мислиш дека е грешка можеш да пратиш email на %s +shareThisUrlToLetSpectatorsSeeTheGame=Сподели го овој линк, да може други да ја набљудуваат играта +replayAndAnalyse=Прегледај повторно и анализирај +flipBoard=Преврти ја таблата +threefoldRepetition=Тројно повторување +claimADraw=Избери реми +offerDraw=Понуди реми +draw=Реми +nbConnectedPlayers=%s приклучени играчи +talkAboutChessAndDiscussLichessFeaturesInTheForum=Разговарај за шах и дискутирај ги опциите на lichess на форумот +seeTheGamesBeingPlayedInRealTime=Гледај ги игрите кои се играат во реално време +gamesBeingPlayedRightNow=Игри кои се играат моментално +viewAllNbGames=Види ги сите %s игри +viewNbCheckmates=Види %s шах-матови +viewInFullSize=Гледај во оригинална големина +logOut=Одјави се +signIn=Најави се +signUp=Регистрирај се +people=Луѓе +games=Игри +forum=Форум +chessPlayers=Играчи +first=Почетна +previous=Претходна +next=Следна +last=Последна +minutesPerSide=Минути по играч +variant=Варијанта +timeControl=Временска контрола +start=Старт +username=Корисник +password=Лозинка +haveAnAccount=Имаш профил? +allYouNeedIsAUsernameAndAPassword=Се што ти е потребно е корисничко име и лозинка. +learnMoreAboutLichess=Научи повеќе за Lichess +rank=Ранг +gamesPlayed=Изиграни партии +declineInvitation=Одбиј ја поканата +cancel=Откажи +timeOut=Времето истече +drawOfferSent=Понуда за реми е испратена +drawOfferDeclined=Понудата за реми е одбиена +drawOfferAccepted=Понудата за реми е прифатена +drawOfferCanceled=Понудата за реми е откажана +yourOpponentOffersADraw=Противникот нуди реми +accept=Прифати +decline=Одбиј +playingRightNow=Моментално игра +abortGame=Откажи ја играта +gameAborted=Играта е откажана +standard=Стандарден +unlimited=Неограничено +mode=Начин +casual=Неформален +rated=Рангиран +thisGameIsRated=Оваа игра е рангирана +rematchOfferSent=Понуда за реванш е испратена +rematchOfferAccepted=Понудата за реванш е прифатена +play=Играј +inbox=Сандаче +chatRoom=Прозор за разговор +composeMessage=Креирај порака +sentMessages=Испратени пораки +incrementInSeconds=Зголемување во секунди +freeOnlineChess=Бесплатен Онлајн Шах +spectators=Набљудувачи +nbWins=%s победи +nbLosses=%s порази +nbDraws=%s нерешени +exportGames=Извади игри +color=Боја +eloRange=Elo опсег +giveNbSeconds=Додај %s секунди +searchAPlayer=Побарај играч +whoIsOnline=Кој е вклучен +allPlayers=Сите играчи +namedPlayers=Имиња на играчи +thisPlayerUsesChessComputerAssistance=Овој играч користи компјутерска помош +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Бесплатна онлајн шах игра. Играј шах во чист интерфејс. Без регистрација, без реклами, без додатни plugin-и. Играј шах со компјутер, пријатели или случајни противници. diff --git a/conf/messages.mn b/conf/messages.mn new file mode 100644 index 0000000000000..cbf4c6bee5233 --- /dev/null +++ b/conf/messages.mn @@ -0,0 +1,126 @@ +playWithAFriend=Найзтайгаа тоглох +inviteAFriendToPlayWithYou=Найзруугаа өөртэйгөө тоглох хүсэлт явуулах +playWithTheMachine=Машинтай тоглох +challengeTheArtificialIntelligence=Хиймэл оюун-ухаантай хүч сорих +toInviteSomeoneToPlayGiveThisUrl=url хаяг явуулан хэн нэгэн уруу тоглох хүсэлт явуулах +gameOver=Тоглолт дуусав +waitingForOpponent=Өрсөлдөгчийг хүлээж байна +waiting=Хүлээж байна +yourTurn=Таний ээлж +aiNameLevelAiLevel=%s түвшин %s +level=Зэрэг +toggleTheChat=Чатийг эргүүлэх +chat=Чат +giveUp=Бууж өгөх +resign=Ахин оноох +checkmate=Шаг мад +stalemate=Мад +white=Цагаан +black=Хар +createAGame=Шинээр үүсгэх +random=Дурын утга сонгох +noGameAvailableRightNowCreateOne=Одоогоор ямар нэг нээлттэй тоглолт алга, шинээр үүсгэнэ үү! +whiteIsVictorious=Цагаан хожлоо +blackIsVictorious=Хар хожлоо +playANewGame=Шинээр тоглолт эхлүүлэх +rematch=Дахин тоглох +playWithTheSameOpponentAgain=Тухайн өрсөлдөгчтэй дахин тоглох +newOpponent=Шинэ өрсөлдөгч +playWithAnotherOpponent=Өөр өрсөлдөгчтэй тоглох +yourOpponentWantsToPlayANewGameWithYou=Өрсөлдөгч тантай шинээр тоглохийг хүсч байна +joinTheGame=Тоглолтонд орох +youAreViewingThisGameAsASpectator=Та тухайн тоглолтын үзэгчийн үүднээс ажиглаж байна +whitePlays=Цагаан тоглоно +blackPlays=Хар тоглоно +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Таний өрсөлдөгч тоглолтыг орихсон байна. Та ялагдалыг хүчээр хүлээлгэх юм уу эсвэл өрсөлдөгчөө буцаж тоглохийг хүлээж болно +makeYourOpponentResign=Өрсөлдөгчөө буулгаж авах +forceResignation=Бууж өгөхийг хүчлэх +talkInChat=Чатаар ярилцах +theFirstPersonToComeOnThisUrlWillPlayWithYou=Энэ url - р орж ирсэн эхний тоглогч тантай тоглоно +whiteCreatesTheGame=Цагаан тоглолтыг үүсгэнэ +blackCreatesTheGame=Хар тоглолтыг үүсгэнэ +whiteJoinsTheGame=Цагаанаар тоглолтонд орох +blackJoinsTheGame=Хараар тоглолтонд орох +whiteResigned=Цагаан бууж өгсөн +blackResigned=Хар бууж өгсөн +whiteLeftTheGame=Цагаан тоглолтыг орхисон +blackLeftTheGame=Хар тоглолтыг орхисон +contact=Холбоо барих мэдээлэл +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Энд харах зүйл алга байна. Хэрэв та үүнийг алдаа гэж үзэж байгаа бол дараах майл хаягаар мэдээг явуулна уу %s +shareThisUrlToLetSpectatorsSeeTheGame=Дараах url - ийг бусадтай хуваалцан ажиглагчидад тоглолтийг харуулна уу +replayAndAnalyse=Дахин тоглуулах ба шинжлэх +flipBoard=Талуудыг солих +threefoldRepetition=Гурав дахин давтах +claimADraw=Тэнцээг нэхэх +offerDraw=Тэнцээг санал болгох +draw=Тэнцээ +nbConnectedPlayers=%s холбогдсон тоглогчид байна +talkAboutChessAndDiscussLichessFeaturesInTheForum=lichess - ийн талаар форумд ярилцах +seeTheGamesBeingPlayedInRealTime=Бодит цагт тоглогдож буй тоглолтуудыг харах +gamesBeingPlayedRightNow=Яг одоо тоглогдож буй тоглолтуудыг харах +viewAllNbGames=Бүх %s тоглолтыг харах +viewNbCheckmates=Бүх %s шаг мадийг харах +viewInFullSize=Бүрэн хэмжээсээр харах +logOut=Гарах +signIn=Нэвтрэх +signUp=Бүртгүүлэх +people=Хүмүүс +games=Тоглолтууд +forum=Форум +chessPlayers=Шатрын тоглогчид +first=Эхний +previous=Өмнөх +next=Дараагийн +last=Сүүлийн +minutesPerSide=Минут талдаа +variant=Хувьсах +timeControl=Хугацааны хязгаарлалт +start=Эхлэх +username=Хэрэглэгчийн нэр +password=Нууц үг +haveAnAccount=Танд бүртгэл байгаа юу? +allYouNeedIsAUsernameAndAPassword=Танд хэрэглэгчийн нэр нууц үг хоёр байхад л хангалттай +learnMoreAboutLichess=Lichess - ийн талаар илүүг мэдэх +rank=Зэрэг +gamesPlayed=Тоглолт дууссан +declineInvitation=Урилагыг цуцлах +cancel=Болиулах +timeOut=Завсарлага +drawOfferSent=Тэнцэх хүсэлтийн явуулав +drawOfferDeclined=Тэнцэх хүсэлтийн няцаав +drawOfferAccepted=Тэнцэх хүсэлтийн хүлээн авав +drawOfferCanceled=Тэнцэх хүсэлтийн цуцлагдав +yourOpponentOffersADraw=Таний өрсөлдөгч тэнцэх хүсэлт гаргаж байна +accept=Хүлээн авах +decline=Цуцлах +playingRightNow=Яг одоо тоглох +abortGame=Тоглоомын тухай +gameAborted=Тоглолтыг зогсоов +standard=Стандарт +unlimited=Хязгааргүй +mode=Горим +casual=Энгийн +rated=Зэрэглэгдсэн +thisGameIsRated=Энэ тоглолтонд зэрэг оноогдсон +rematchOfferSent=Дахин тоглох хүсэлт явуулав +rematchOfferAccepted=Дахин тоглох хүсэлтийг зөвшөөрөв +play=Тоглох +inbox=Инбокс(Inbox) +chatRoom=Чат өрөө +composeMessage=Зурвах үүсгэх +sentMessages=Илгээгдсэн зурвасууд +incrementInSeconds=Секундээр нэмэгдүүлэх +freeOnlineChess=Үнэгүй онлайн шатар +spectators=Үзэгчид: +nbWins=%s хожсон +nbLosses=%s хожигдсон +nbDraws=%s тэнцсэн +exportGames=Тоглолтыг хэвлэх +color=Өнгө +giveNbSeconds=%s секунд өгөх +searchAPlayer=Тоглогч хайх +whoIsOnline=Хэн онлайн байна +allPlayers=Бүх тоглогчид +namedPlayers=Нэртэй тоглогчид +thisPlayerUsesChessComputerAssistance=Энэ тоглогч шатар тоглохдоо компьютерээс туслалцаа авж байна +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Үнэгүй онлайн шатар. Цэвэр интерфэйстэй, бүртгэл шаардахгүй, сурталчилгаа үзүүлэхгүй, нэмэлт програм нэхэхгүй шатар тоглоорой. Та найзтайгаа, дурын хүмүүстэй, хиймэл оюун ухаантай шатар тоглож болно. diff --git a/conf/messages.mr b/conf/messages.mr new file mode 100644 index 0000000000000..5a0f4e3abbb53 --- /dev/null +++ b/conf/messages.mr @@ -0,0 +1,109 @@ +playWithAFriend=एका मित्रा बरोबर खेळा +inviteAFriendToPlayWithYou=एका मित्राला आपल्या बरोबर खेळण्याचे आमंत्रण द्या +playWithTheMachine=कंप्यूटर बरोबर खेळा +challengeTheArtificialIntelligence=कृत्रिम बुद्धिला आव्हान द्या +toInviteSomeoneToPlayGiveThisUrl=कुणाला आपल्या बरोबर खेळण्याचे निमंत्रित करण्यासाठी हा युआरएल द्या +gameOver=डाव समाप्त +waitingForOpponent=विरोधकाच्या चालीसाठी थांबलेले आहे +waiting=थांबलेले आहे +yourTurn=तुमची चाल +aiNameLevelAiLevel=%s, पातळी %s +level=पातळी +toggleTheChat=गप्पा उघड/बंद करा +chat=गप्पा +giveUp=डाव त्याग करूं टाका +resign=हार माना +checkmate=शह देउन मात +stalemate=अर्धवट मात +white=सफेद +black=काळा +whiteIsVictorious=सफेद विजयी ठरला +blackIsVictorious=काळा विजयी ठरला +playANewGame=खेळाचा नवा डाव खेळा +rematch=पुनः खेळा +playWithTheSameOpponentAgain=याच विरोधका बरोबर पुन्हा खेळा +newOpponent=नवे विरोधक +playWithAnotherOpponent=वेगळ्या विरोधकाबरोबर खेळा +yourOpponentWantsToPlayANewGameWithYou=तुमचे विरोधक तुमच्याबरोबर नवा डाव खेळू इच्छितात +joinTheGame=खेळात दाखल व्हा +youAreViewingThisGameAsASpectator=तुम्ही हा डाव प्रेक्षक म्हणून पाहत आहात +whitePlays=सफेद खेळतो +blackPlays=काळा खेळतो +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=दुसर्या खेळाडूने खेळ सोडला आहे. तुम्ही जबरदस्ती त्यांची हार कबूल करू शकतात, नाही तर त्यांची वाट पाहू शकतात. +makeYourOpponentResign=विरोधकांना हार मानायला लावा +forceResignation=जबरदस्ती हार कबूल करा +talkInChat=गप्पांमध्ये बोला +theFirstPersonToComeOnThisUrlWillPlayWithYou=या युआरएलवर येणारे पहिले व्यक्ती तुमच्याबरोबर खेळणार. +whiteCreatesTheGame=सफेदने खेळ मांडला +blackCreatesTheGame=काळ्याने खेळ मांडला +whiteJoinsTheGame=सफेद खेळात दाखल झाला +blackJoinsTheGame=काळा खेळात दाखल झाला +whiteResigned=सफेदने हार मानली +blackResigned=काळ्याने हार मानली +whiteLeftTheGame=सफेदने खेळ सोडले +blackLeftTheGame=काळ्याने खेळ सोडले +contact=संपर्क करा +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=इथे पाहण्यास काही नाही. जर हा तुम्हाला बग वाटत असेल, तर तुम्ही %s इथे ई-मेल करु शकतात. +shareThisUrlToLetSpectatorsSeeTheGame=प्रेक्षकांना हा खेळ पाहायला देण्यासाठी हा युआरएल वाटावे +replayAndAnalyse=परीक्षण व विश्लेषण +flipBoard=पटाला पलटा +threefoldRepetition=तीनदा पुनरावृत्ती +claimADraw=डाव अनिर्णीत राहण्याचा दावा करा +offerDraw=डाव अनिर्णीत ठेवण्याचा प्रस्ताव पाठवा +draw=डाव अनिर्णीत राहिला +nbConnectedPlayers=%s खेळाडू जोडुन आहेत +talkAboutChessAndDiscussLichessFeaturesInTheForum=चर्चामंडळात बुद्धिबळाविषयी बोला किंव्हा लिचेसच्या गुणविशेषाबाबतीत चर्चा करा +seeTheGamesBeingPlayedInRealTime=या वेळी खेळले जाणारे डाव पाहा +gamesBeingPlayedRightNow=या वेळी खेळले जाणारे डाव +viewAllNbGames=सर्व %s डाव पाहा +viewNbCheckmates=सर्व %s शह देउन मात पाहा +viewInFullSize=अधिकतम आकारात पाहा +logOut=बाहेर पडा +signIn=प्रवेश करा +signUp=सदस्य खाते तयार करा +people=लोकं +games=खेळ +forum=चर्चामंडळ +chessPlayers=बुद्धिबळ खेळाडू +first=पहिले +previous=आधले +next=नंतरचे +last=शेवटचे +minutesPerSide=दर बाजूचे मिनिट +variant=प्रकार +timeControl=वेळाचे नियंत्रण +start=सुरुवात +username=सदस्याचे नाव +password=परवलीचा शब्द +haveAnAccount=खाते आहे का? +allYouNeedIsAUsernameAndAPassword=तुम्हाला फक्त एका सदस्याचे नाव व परवलीच्या शब्दाची गरज आहे. +learnMoreAboutLichess=लिचेसबद्दल अधिक माहिती करा +rank=मानांकन +gamesPlayed=खेळलेले डाव +declineInvitation=निमंत्रण नाकारा +cancel=रद्द करा +timeOut=वेळ समाप्त +drawOfferSent=डाव अनिर्णीत ठेवण्याचा प्रस्ताव पाठवला +drawOfferDeclined=डाव अनिर्णीत ठेवण्याचा प्रस्ताव नाकारला +drawOfferAccepted=डाव अनिर्णीत ठेवण्याचा प्रस्ताव स्वीकारला +drawOfferCanceled=डाव अनिर्णीत ठेवण्याचा प्रस्ताव रद्द केला गेला +yourOpponentOffersADraw=तुमच्या विरोधकाने डाव अनिर्णीत ठेवण्याचा प्रस्ताव पाठवला आहे +accept=स्वीकारा +decline=नाकारा +playingRightNow=या वेळी खेळत +abortGame=डाव बंद करा +gameAborted=डाव बंद केला गेला +standard=मानक +unlimited=अमर्याद +mode=पध्दती +casual=नैमित्तिक +rated=दर्जा दिला +thisGameIsRated=या डावाचा दर्जा +rematchOfferSent=पुनः खेळण्याचा प्रस्ताव पाठवला +rematchOfferAccepted=पुनः खेळण्याचा प्रस्ताव स्वीकारला +play=खेळा +inbox=इनबॉक्स +chatRoom=गप्पांची खोली +composeMessage=संदेश लिहा +sentMessages=पाठवलेले संदेश +incrementInSeconds=सेकंदांमध्ये वाढ diff --git a/conf/messages.nb b/conf/messages.nb new file mode 100644 index 0000000000000..ecab23dad1e6a --- /dev/null +++ b/conf/messages.nb @@ -0,0 +1,127 @@ +playWithAFriend=Spill med en venn +inviteAFriendToPlayWithYou=Inviter en venn til å spille med deg +playWithTheMachine=Spill mot en maskin +challengeTheArtificialIntelligence=Spill mot en datamaskin +toInviteSomeoneToPlayGiveThisUrl=For å invitere noen til å spille, gi dem denne urlen +gameOver=Partiet slutt +waitingForOpponent=Venter på motstander +waiting=Venter +yourTurn=Din tur +aiNameLevelAiLevel=%s nivå %s +level=Nivå +toggleTheChat=Vis/skjul chaten +chat=Prat +giveUp=Gi opp +resign=Gi opp +checkmate=Sjakkmatt +stalemate=Patt +white=Hvit +black=Sort +createAGame=Opprett et spill +random=Tilfeldig +noGameAvailableRightNowCreateOne=Ingen spill er tilgjengelig nå, opprett ett! +whiteIsVictorious=Hvit vant +blackIsVictorious=Sort vant +playANewGame=Spill et nytt parti +rematch=Omkamp +playWithTheSameOpponentAgain=Spill med samme motstander igjen +newOpponent=Ny motstander +playWithAnotherOpponent=Spill mot en ny motstander +yourOpponentWantsToPlayANewGameWithYou=Din motstander vil spille mot deg igjen +joinTheGame=Bli med i spillet +youAreViewingThisGameAsASpectator=Du ser på dette spillet som en tilskuer +whitePlays=Hvit spiller +blackPlays=Sort spiller +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Den andre spilleren har forlatt spillet. Du kan kreve seier, eller vente på ham. +makeYourOpponentResign=Tving motstanderen til å gi opp +forceResignation=Krev seier +talkInChat=Prat i chatten +theFirstPersonToComeOnThisUrlWillPlayWithYou=Første person til å komme til denne adressen vil spille med deg +whiteCreatesTheGame=Hvit inviterer til partiet +blackCreatesTheGame=Sort inviterer til partiet +whiteJoinsTheGame=Hvit blir med i partiet +blackJoinsTheGame=Sort blir med i partiet +whiteResigned=Hvit ga opp +blackResigned=Sort ga opp +whiteLeftTheGame=Hvit har forlatt spillet +blackLeftTheGame=Sort har forlatt partiet +contact=Kontakt +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Ikke noe å se her. Hvis du tror det er en bug, kan du sende en e-post til %s +shareThisUrlToLetSpectatorsSeeTheGame=Del denne adressen for å la tilskuere se partiet +replayAndAnalyse=Spill av og analyser +flipBoard=Snu brettet +threefoldRepetition=Trefoldig trekkgjentakelse +claimADraw=Krev remis +offerDraw=Tilby remis +draw=Uavgjort +nbConnectedPlayers=%s tilkoblede spillere +talkAboutChessAndDiscussLichessFeaturesInTheForum=Snakk om sjakk og diskuter lichess funksjoner i forumet +seeTheGamesBeingPlayedInRealTime=Se spill som spilles i sanntid +gamesBeingPlayedRightNow=Spill som spilles akkurat nå +viewAllNbGames=Vis alle %s spill +viewNbCheckmates=Se %s sjakkmatt +viewInFullSize=Vis i full størrelse +logOut=Logg ut +signIn=Logg på +signUp=Registrer deg +people=Mennesker +games=Partier +forum=Forum +chessPlayers=Sjakkspillere +first=Første +previous=Forrige +next=Neste +last=Siste +minutesPerSide=Minutter per side +variant=Variant +timeControl=Tids styring +start=Start +username=Brukernavn +password=Passord +haveAnAccount=Har du en konto? +allYouNeedIsAUsernameAndAPassword=All du trenger et et brukernavn og et passord. +learnMoreAboutLichess=Lær mer om Lichess +rank=Rangering +gamesPlayed=Antall partier spillt +declineInvitation=Avslå invitasjonen +cancel=Avbryt +timeOut=Tiden er ute +drawOfferSent=Remistilbud sendt +drawOfferDeclined=Remistilbud avslått +drawOfferAccepted=Remistilbud akseptert +drawOfferCanceled=Remistilbud trukket tilbake +yourOpponentOffersADraw=Din motstander tilbyr remis +accept=Godta +decline=Avslå +playingRightNow=Spiller akkurat nå +abortGame=Avbryt partiet +gameAborted=Partiet avbrutt +standard=Standard +unlimited=Ubegrenset +mode=Modus +casual=Uratet +rated=Rangert +thisGameIsRated=Dette spillet er rangert +rematchOfferSent=Omkamp tilbud sendt +rematchOfferAccepted=Omkamp tilbud godtatt +play=Spill +inbox=Innboks +chatRoom=Praterom +composeMessage=Skriv melding +sentMessages=Sendte meldinger +incrementInSeconds=Tilleggstid i sekunder +freeOnlineChess=Gratis online sjakk +spectators=Tilskuere: +nbWins=%s vinner +nbLosses=%s taper +nbDraws=%s spiller uavgjort +exportGames=Eksporter partier +color=Farge +giveNbSeconds=Gi %s sekunder +searchAPlayer=Søk etter spiller +whoIsOnline=Hvem er pålogget +allPlayers=Alle spillere +namedPlayers=Navngitte spillere +premoveEnabledClickAnywhereToCancel=Forhåndstrekk aktivert - Trykk hvor som helst for å avbryte +thisPlayerUsesChessComputerAssistance=Denne spilleren bruker sjakk computer assisanse +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Gratis online sjakkspill. Spill sjakk i et renskåret grensesnitt. Ingen registrering, ingen reklame, ingen nettleserutvidelse er påkrevd. Spill sjakk mot en datamaskin, venner eller tilfeldige motstandere. diff --git a/conf/messages.nl b/conf/messages.nl new file mode 100644 index 0000000000000..9a6657ec782f0 --- /dev/null +++ b/conf/messages.nl @@ -0,0 +1,138 @@ +playWithAFriend=Spelen tegen een vriend +inviteAFriendToPlayWithYou=Nodig een vriend of kennis uit om tegen te spelen +playWithTheMachine=Spelen tegen de computer +challengeTheArtificialIntelligence=Daag het programma uit +toInviteSomeoneToPlayGiveThisUrl=Stuur deze link als u iemand wilt uitnodigen om met u te spelen +gameOver=Partij afgelopen +waitingForOpponent=Wachten op tegenstander +waiting=Even geduld a.u.b. +yourTurn=U bent aan zet +aiNameLevelAiLevel=%s niveau %s +level=Niveau +toggleTheChat=Chat aan-/uitzetten +chat=Chat +giveUp=Opgeven +resign=Opgegeven +checkmate=Schaakmat +stalemate=Pat +white=Wit +black=Zwart +createAGame=Nieuw spel +random=Willekeurig +noGameAvailableRightNowCreateOne=Geen partij beschikbaar, initieer een nieuwe partij +whiteIsVictorious=Wit heeft gewonnen +blackIsVictorious=Zwart heeft gewonnen +playANewGame=Nieuwe partij beginnen +rematch=Opnieuw spelen +playWithTheSameOpponentAgain=Speel tegen dezelfde tegenstander +newOpponent=Nieuwe tegenstander +playWithAnotherOpponent=Speel tegen een andere tegenstander +yourOpponentWantsToPlayANewGameWithYou=Uw tegenstander wil een nieuw spel met u spelen +joinTheGame=Speel mee +youAreViewingThisGameAsASpectator=U bekijkt deze partij als toeschouwer +whitePlays=Wit aan zet +blackPlays=Zwart aan zet +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=De andere speler is weggegaan. U kunt opgeven afdwingen of op hem wachten. +makeYourOpponentResign=Dwing uw tegenstander op te geven +forceResignation=Dwing opgeven af +talkInChat=Spreek in de chat +theFirstPersonToComeOnThisUrlWillPlayWithYou=Degene die als eerste op deze link klikt, zal met u spelen. +whiteCreatesTheGame=Wit initieert de partij +blackCreatesTheGame=Zwart initieert de partij +whiteJoinsTheGame=Wit meldt zich voor deze partij +blackJoinsTheGame=Zwart meldt zich voor deze partij +whiteResigned=Wit geeft op +blackResigned=Zwart geeft op +whiteLeftTheGame=Wit is weggegaan +blackLeftTheGame=Zwart is weggegaan +contact=Contact +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Hier is niets te zien. Als u denkt dat het een bug is, kunt u altijd een e-mail sturen naar %s +shareThisUrlToLetSpectatorsSeeTheGame=Verstuur deze link om anderen de partij te laten zien +replayAndAnalyse=Partij naspelen +viewGameStats=Partijstatistieken bekijken +flipBoard=Bord draaien +threefoldRepetition=Drievoudige herhaling +claimADraw=Remise opeisen +offerDraw=Remise aanbieden +draw=Remise +nbConnectedPlayers=%s spelers online +talkAboutChessAndDiscussLichessFeaturesInTheForum=Praat over schaken en discussieer over Lichess-functies in het forum +seeTheGamesBeingPlayedInRealTime=Volg partijen die op dit moment gespeeld worden +gamesBeingPlayedRightNow=Lopende partijen +viewAllNbGames=Alle %s partijen +viewNbCheckmates=Alle %s partijen met schaakmat +viewInFullSize=Bekijk op standaard formaat +logOut=Afmelden +signIn=Aanmelden +signUp=Registreren +people=Personen +games=Partijen +forum=Forum +chessPlayers=Geregistreerde spelers en spelers die online zijn +first=Eerste +previous=Vorige +next=Volgende +last=Laatste +minutesPerSide=Minuten per persoon +variant=Variant +timeControl=Speelduur +start=Start +username=Gebr.naam +password=Wachtwoord +haveAnAccount=U hebt al een account? +allYouNeedIsAUsernameAndAPassword=U hebt alleen een gebruikersnaam en een wachtwoord nodig. +learnMoreAboutLichess=Meer informatie over Lichess +rank=Rang +gamesPlayed=Gespeelde partijen +declineInvitation=Uitnodiging afslaan +cancel=Annuleren +timeOut=Tijd voorbij +drawOfferSent=Remiseaanbod verstuurd +drawOfferDeclined=Remiseaanbod afgeslagen +drawOfferAccepted=Remiseaanbod geaccepteerd +drawOfferCanceled=Remiseaanbod geannuleerd +yourOpponentOffersADraw=Uw tegenstander biedt remise aan +accept=Accepteren +decline=Afslaan +playingRightNow=Nu aan het spelen +abortGame=Partij afbreken +gameAborted=Partij afgebroken +standard=Standaard +unlimited=Onbeperkt +mode=Instelling +casual=Vrijblijvend +rated=Met rating +thisGameIsRated=Partij telt mee voor de ranglijst +rematchOfferSent=Uitnodiging voor nieuwe partij verstuurd +rematchOfferAccepted=Uitnodiging voor nieuwe partij geaccepteerd +cancelRematchOffer=Uitnodiging voor nieuwe partij annuleren +play=Spelen +inbox=Postvak IN +chatRoom=Chatruimte +composeMessage=Nieuw bericht +sentMessages=Verzonden berichten +incrementInSeconds=Seconden extra per zet +freeOnlineChess=Gratis online schaken +spectators=Toeschouwers: +nbWins=%s gewonnen +nbLosses=%s verloren +nbDraws=%s remise +exportGames=Partijen exporteren +color=Kleur +eloRange=Elo-reeks +giveNbSeconds=Geef %s seconden +searchAPlayer=Zoek een speler +whoIsOnline=Wie is online +allPlayers=Alle spelers +namedPlayers=Geregistreerde spelers +premoveEnabledClickAnywhereToCancel=Vooruitzetten mogelijk - klik ergens om op te heffen +thisPlayerUsesChessComputerAssistance=Deze speler maakt gebruik van een schaakprogramma +opening=Beginnen +takeback=Neem terug +proposeATakeback=Stel terug nemen voor +takebackPropositionSent=Voorstel voor terug nemen verstuurd +takebackPropositionDeclined=Voorstel voor terug nemen geweigerd +takebackPropositionAccepted=Voorstel voor terug nemen geaccepteerd +takebackPropositionCanceled=Voorstel voor terug nemen geannuleerd +yourOpponentProposesATakeback=Uw tegenstander stelt terug nemen voor +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Gratis online schaken. Schaak nu met een duidelijke interface. Geen registratie, geen advertenties, geen plug-ins vereist. Schaak tegen de computer, vrienden of willekeurige spelers. diff --git a/conf/messages.nn b/conf/messages.nn new file mode 100644 index 0000000000000..76d6d8736322f --- /dev/null +++ b/conf/messages.nn @@ -0,0 +1,119 @@ +playWithAFriend=Spel mot ein ven +inviteAFriendToPlayWithYou=Inviter ein ven til å spela med deg +playWithTheMachine=Spel mot datamaskina +challengeTheArtificialIntelligence=Utmana maskina +toInviteSomeoneToPlayGiveThisUrl=For å invitere nokon å spela mot, gje denne lenka: +gameOver=Partiet er ferdig +waitingForOpponent=Venter på motstandar +waiting=Venter +yourTurn=Din tur +aiNameLevelAiLevel=%s på nivå %ai_level +level=Nivå +toggleTheChat=Slå av og på prat +chat=Prat +giveUp=Gje opp +resign=Gjev opp +checkmate=Sjakk matt +stalemate=Patt +white=Kvit +black=Svart +createAGame=Start eit spel +random=Tilfeldig +noGameAvailableRightNowCreateOne=Ikkje noko parti tilgjengeleg nett no, lag eitt! +whiteIsVictorious=Kvit har vunne +blackIsVictorious=Svart har vunne +playANewGame=Spel eit nytt parti +rematch=Omkamp +playWithTheSameOpponentAgain=Spel mot same motstandaren ein gong til +newOpponent=Ny motstandar +playWithAnotherOpponent=Spel mot ein annan motstandar +yourOpponentWantsToPlayANewGameWithYou=Din motstandar vil spela eit nytt parti med deg +joinTheGame=Bli med +youAreViewingThisGameAsASpectator=Du observerer dette partiet som oskodar +whitePlays=Kvit spelar +blackPlays=Svart spelar +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Den andre spelaren er borte, du kan krevja siger, eller vente på at han kjem attende +makeYourOpponentResign=Krev siger +forceResignation=Krev siger +talkInChat=Nettprat +theFirstPersonToComeOnThisUrlWillPlayWithYou=Den første personen som kjem til denne lenka vil spela mot deg +whiteCreatesTheGame=Kvit har laga spelet +blackCreatesTheGame=Svart har laga spelet +whiteJoinsTheGame=Kvit hiv seg på spelet +blackJoinsTheGame=Svart blir med i partiet +whiteResigned=Hvit har resignert +blackResigned=Sort ga opp +whiteLeftTheGame=Kvit gjekk frå partiet +blackLeftTheGame=Svart gjekk frå partiet +contact=Kontakt +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Det er ingenting å sjå her. Dersom du trur at du har funne ein feil, ver venleg å senda ein mail til %s +shareThisUrlToLetSpectatorsSeeTheGame=Del denne lenka slik at andre kan sjå spelet +replayAndAnalyse=Spel om att og analyser +flipBoard=Snu brettet +threefoldRepetition=Tre repetisjonar av stillinga +claimADraw=Krev remis +offerDraw=Tilby remis +draw=Remis +nbConnectedPlayers=Antal spelararar tilkobla: %s +talkAboutChessAndDiscussLichessFeaturesInTheForum=Prat om sjakk og diskuter lichess i forumet +seeTheGamesBeingPlayedInRealTime=Sjå dei partia som vert spelt nett no +gamesBeingPlayedRightNow=Parti som vert spelt nett no +viewAllNbGames=Sjå alle %s spela +viewNbCheckmates=Sjå %s sjakkmatt +viewInFullSize=Sjå i full storleik +logOut=Logg ut +signIn=Logg inn +signUp=Registrer deg +people=Spelarar +games=Spel +forum=Forum +chessPlayers=Sjakkspelarar +first=Første +previous=Førre +next=Neste +last=Siste +minutesPerSide=Minutt per side +variant=Variant +timeControl=Tidskontroll +start=Start +username=Brukarnamn +password=Passord +haveAnAccount=Har du ein konto her? +allYouNeedIsAUsernameAndAPassword=Alt du treng er eit brukarnamn og passord +learnMoreAboutLichess=Lær meir om Lichess +rank=Nivå +gamesPlayed=Antal spel +declineInvitation=Avslå invitasjon +cancel=Avbryt +timeOut=Tida er ute +drawOfferSent=Remistilbod sendt +drawOfferDeclined=Remistilbod avslege +drawOfferAccepted=Remistilbod godteke +drawOfferCanceled=Remistilbod trekt attende +yourOpponentOffersADraw=Din motstandar tilbyr remis +accept=Godta +decline=Avslå +playingRightNow=Spelar nett no +abortGame=Avbryt spelet +gameAborted=Partiet avbrote +standard=Standard +unlimited=Ubegrensa +mode=Type +casual=Urata +rated=Rata +thisGameIsRated=Dette spelet er rata +rematchOfferSent=Tilbod om omkamp sendt +rematchOfferAccepted=Tilbod om omkamp godteke +play=Spel +inbox=Innboks +chatRoom=Pratrom +composeMessage=Skriv ei melding +sentMessages=Sendte meldingar +incrementInSeconds=Tilleggstid i sekund +freeOnlineChess=Gratis nettsjakk +spectators=Oskodarar +nbWins=%s sigrar +nbLosses=%s tap +nbDraws=%s remis +exportGames=Send parti +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Gratis nettsjakk. Spel sjakk på ei rein nettside. Inga påmelding, ikkje noko tillegg eller nedlastingar trengs. Spel mot ei maskin, vener eller tilfeldige motstandarar. diff --git a/conf/messages.no b/conf/messages.no new file mode 100644 index 0000000000000..38f9a512f34c8 --- /dev/null +++ b/conf/messages.no @@ -0,0 +1,130 @@ +playWithAFriend=Spill med en venn +inviteAFriendToPlayWithYou=Inviter en du kan spille mot +playWithTheMachine=Spill mot maskinen +challengeTheArtificialIntelligence=Utfordre datamaskinen? +toInviteSomeoneToPlayGiveThisUrl=For å invitere noen å spille mot, gi denne linken +gameOver=Spillet er slutt +waitingForOpponent=Venter på motstander +waiting=Venter +yourTurn=Din tur +aiNameLevelAiLevel=%s på nivå %ai_level +level=Nivå +toggleTheChat=Slå samtalen av og på +chat=Samtale +giveUp=Gi opp +resign=Gi seg +checkmate=Sjakk matt +stalemate=Patt +white=Hvit +black=Svart +createAGame=Lag en invitasjon til et parti +random=Tilfeldig +noGameAvailableRightNowCreateOne=Ingen spill er tilgjengelig nå, opprett ett! +whiteIsVictorious=Hvit har vunnet +blackIsVictorious=Svart har vunnet +playANewGame=Spill et nytt parti +rematch=Omkamp +playWithTheSameOpponentAgain=Spill mot samme motstander en gang til +newOpponent=Ny motstander +playWithAnotherOpponent=Spill mot en ny motstander +yourOpponentWantsToPlayANewGameWithYou=Din motstander vil spille et nytt parti med deg +joinTheGame=Bli med +youAreViewingThisGameAsASpectator=Du observerer dette partiet +whitePlays=Hvit spiller +blackPlays=Svart spiller +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Den andre spilleren har forlatt partiet, du kan tvinge en resignasjon eller vente til han/hun kommer tilbake. +makeYourOpponentResign=Tving motstanderen til å gi opp +forceResignation=Tving resignasjon +talkInChat=Bruk chat +theFirstPersonToComeOnThisUrlWillPlayWithYou=Den første personen som kommer til denne linken vil spille mot deg +whiteCreatesTheGame=Hvit har initiert partiet +blackCreatesTheGame=Sort har initiert partiet +whiteJoinsTheGame=Hvit deltar i partiet +blackJoinsTheGame=Svart deltar i partiet +whiteResigned=Hvit har gitt opp +blackResigned=Svart har gitt opp +whiteLeftTheGame=Hvit forlot partiet +blackLeftTheGame=Svart forlot partiet +contact=Kontakt +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Det er ingenting å se her. Hvis du tror du har funnet en feil, vennligst send en epost til %s +shareThisUrlToLetSpectatorsSeeTheGame=Del denne linken for å få andre til å følge dette spillet +replayAndAnalyse=Spill igjen og analyser +viewGameStats=Vis spillstatistikk +flipBoard=Snu brettet +threefoldRepetition=Tredelt Repetisjon +claimADraw=Krev remi +offerDraw=Tilby Remi +draw=Remi +nbConnectedPlayers=%s spillere +talkAboutChessAndDiscussLichessFeaturesInTheForum=Snakk om sjakk og diskuter lichess funksjoner i forumet +seeTheGamesBeingPlayedInRealTime=Spill som spilles akkurat nå +gamesBeingPlayedRightNow=Spill som blir spilt nå +viewAllNbGames=Se alle %s spill +viewNbCheckmates=Se %s sjakkmatter +viewInFullSize=Se i full størrelse +logOut=Logg ut +signIn=Logg inn +signUp=Lag en bruker +people=Folk +games=Spill +forum=Forum +chessPlayers=Sjakk spillere +first=Første +previous=Forrige +next=Neste +last=Siste +minutesPerSide=Minutter per side +variant=Variant +timeControl=Tids kontroll +start=Start +username=Brukernavn +password=Passord +haveAnAccount=Har du en konto? +allYouNeedIsAUsernameAndAPassword=Alt du trenger er et brukernavn og et passord. +learnMoreAboutLichess=Lær mer om Lichess +rank=Ranking +gamesPlayed=Partier spilt +declineInvitation=Avslå invitasjon +cancel=Avbryt +timeOut=Tiden er ute +drawOfferSent=Remi tilbud sent +drawOfferDeclined=Remi avslått +drawOfferAccepted=Remi akseptert +drawOfferCanceled=Remi tilbud avbrutt +yourOpponentOffersADraw=Din motstander tilbyr remi +accept=Aksepter +decline=Avslå +playingRightNow=Spill nå! +abortGame=Avbryt Spillet +gameAborted=Spill Avbrutt +standard=Standard +unlimited=Ubegrenset +mode=Modus +casual=Normal +rated=Vurdert +thisGameIsRated=Dette spillet er vurdert +rematchOfferSent=Omkamp tilbud sendt +rematchOfferAccepted=Omkamp tilbud akkseptert +cancelRematchOffer=Avbryt omkamp-forespørsel +play=Spill +inbox=Inboks +chatRoom=Chat +composeMessage=Skriv melding +sentMessages=Sendte meldinger +incrementInSeconds=Økning i sekund +freeOnlineChess=Gratis online sjakk +spectators=Tilskuere: +nbWins=%s vunnet +nbLosses=%s tap +nbDraws=%s uavgjorte +exportGames=Eksporter spill +color=Farge +eloRange=Elo rekkevidde +giveNbSeconds=Gi %s sekunder +searchAPlayer=Søk etter en spiller +whoIsOnline=Hvem er pålogget +allPlayers=Alle spillere +namedPlayers=Navngitte spillere +premoveEnabledClickAnywhereToCancel=Forhåndstrekk aktivert - klikk hvor som helst for å avbryte +thisPlayerUsesChessComputerAssistance=Denne spilleren bruker datahjelp +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Gratis online sjakk. Spill sjakk nå med et rent grensesnitt. Ingen registrering, ingen reklame og ingen ekstra tillegg nødvendig. Spill sjakk mot datamaskinen, en venn eller tilfeldige motstandere. diff --git a/conf/messages.pl b/conf/messages.pl new file mode 100644 index 0000000000000..392a407762be9 --- /dev/null +++ b/conf/messages.pl @@ -0,0 +1,138 @@ +playWithAFriend=Zagraj ze znajomym +inviteAFriendToPlayWithYou=Zaproś przyjaciela do gry +playWithTheMachine=Zagraj z komputerem +challengeTheArtificialIntelligence=Staw czoła sztucznej inteligencji +toInviteSomeoneToPlayGiveThisUrl=Aby zaprosić przyjaciela, daj mu ten adres: +gameOver=Koniec gry +waitingForOpponent=Oczekiwanie na przeciwnika +waiting=Czekaj +yourTurn=Twój ruch +aiNameLevelAiLevel=%s poziom %s +level=Poziom +toggleTheChat=Włącz/wyłącz czat +chat=Czat +giveUp=Poddaj się +resign=Zrezygnuj +checkmate=Mat +stalemate=Pat +white=Białe +black=Czarne +createAGame=Utwórz grę +random=Losowy +noGameAvailableRightNowCreateOne=Brak dostępnej gry, stwórz nową! +whiteIsVictorious=Białe zwyciężyły +blackIsVictorious=Czarne zwyciężyły +playANewGame=Rozegraj nową partię +rematch=Rewanż +playWithTheSameOpponentAgain=Zagraj ponownie z tym samym przeciwnikiem +newOpponent=Nowy przeciwnik +playWithAnotherOpponent=Zagraj z innym przeciwnikiem +yourOpponentWantsToPlayANewGameWithYou=Twój przeciwnik chce zagrać z tobą jeszcze raz +joinTheGame=Dołącz do gry +youAreViewingThisGameAsASpectator=Obserwujesz tę grę jako widz +whitePlays=Ruch białych +blackPlays=Ruch czarnych +theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Drugi gracz opuścił grę. Możesz zrezygnować z gry lub zaczekać na niego. +makeYourOpponentResign=Zmuś przeciwnika do rezygnacji +forceResignation=Wymuszenie rezygnacji +talkInChat=Rozmawiaj na czacie +theFirstPersonToComeOnThisUrlWillPlayWithYou=Pierwsza osoba, która użyje tego adresu, dołączy do twojej gry +whiteCreatesTheGame=Białe tworzą grę +blackCreatesTheGame=Czarne tworzą grę +whiteJoinsTheGame=Białe dołączają do gry +blackJoinsTheGame=Czarne dołączają do gry +whiteResigned=Białe rezygnują +blackResigned=Czarne rezygnują +whiteLeftTheGame=Białe opuszczają grę +blackLeftTheGame=Czarne opuszczają grę +contact=Kontakt +thereIsNothingToSeeHereIfYouThinkItsABugYouCouldSendAnEmailToEmail=Nie ma tutaj niczego ciekawego. Jeżeli myślisz że to błąd, wyślij email na adres %s +shareThisUrlToLetSpectatorsSeeTheGame=Podziel się tym adresem, aby zaprosić widzów do obserwowania tej gry +replayAndAnalyse=Oglądaj i analizuj +viewGameStats=Zobacz statystyki +flipBoard=Obróć szachownicę +threefoldRepetition=Trzykrotne powtórzenie ruchów +claimADraw=Zaproponuj remis +offerDraw=Zaoferuj remis +draw=Remis +nbConnectedPlayers=%s graczy online +talkAboutChessAndDiscussLichessFeaturesInTheForum=Rozmawiaj o szachach i dyskutuj o lichess na forum +seeTheGamesBeingPlayedInRealTime=Zobacz aktualnie rozgrywane partie w czasie rzeczywistym +gamesBeingPlayedRightNow=Aktualnie rozgrywane partie +viewAllNbGames=Zobacz wszystkie %s gry +viewNbCheckmates=Zobacz %s szach-matów +viewInFullSize=Zobacz w pełnej wersji +logOut=Wyloguj +signIn=Zaloguj +signUp=Zarejestruj +people=Ludzie +games=Gry +forum=Forum +chessPlayers=Szachiści +first=Pierwsza +previous=Poprzednia +next=Następna +last=Ostatnia +minutesPerSide=Minut na stronę +variant=Wariant +timeControl=Kontrola czasu +start=Start +username=Nazwa użytkownika +password=Hasło +haveAnAccount=Masz już konto? +allYouNeedIsAUsernameAndAPassword=Wszystko czego potrzebujesz to nazwa użytkownika i hasło. +learnMoreAboutLichess=Dowiedz się więcej o Lichess +rank=Miejsce +gamesPlayed=Rozegranych partii +declineInvitation=Odrzuć zaproszenie +cancel=Anuluj +timeOut=Czas upłynął +drawOfferSent=Oferta remisu wysłana +drawOfferDeclined=Oferta remisu odrzucona +drawOfferAccepted=Oferta remisu przyjęta +drawOfferCanceled=Oferta remisu anulowana +yourOpponentOffersADraw=Twój przeciwnik oferuje remis +accept=Zaakceptuj +decline=Odrzuć +playingRightNow=Aktualnie grający +abortGame=Przerwij grę +gameAborted=Gra została przerwana +standard=Standard +unlimited=Bez ograniczeń +mode=Tryb +casual=Nieformalna +rated=Rankingowa +thisGameIsRated=Ta gra jest rankingowa +rematchOfferSent=Wysłano propozycję rewanżu +rematchOfferAccepted=Propozycja rewanżu przyjęta +cancelRematchOffer=Odrzuć propozycję rewanżu +play=Zagraj +inbox=Skrzynka odbiorcza +chatRoom=Czat +composeMessage=Napisz wiadomość +sentMessages=Wiadomości wysłane +incrementInSeconds=Zwiększanie czasu w sekundach +freeOnlineChess=Darmowe Szachy Online +spectators=Widzowie: +nbWins=%s Wygrane +nbLosses=%s Przegrane +nbDraws=%s Remisy +exportGames=Eksportuj partie +color=Kolor +eloRange=Przedział rankingowy elo +giveNbSeconds=Dodaj %s sekund +searchAPlayer=Szukaj zawodnika +whoIsOnline=Kto jest online +allPlayers=Wszyscy gracze +namedPlayers=Nazwani gracze +premoveEnabledClickAnywhereToCancel=Funkcja planowanego ruchu aktywna - Kliknij gdziekolwiek, aby ją wyłączyć +thisPlayerUsesChessComputerAssistance=Ten gracz korzysta z pomocy programu szachowego +opening=Otwieranie +takeback=Cofnij ruch +proposeATakeback=Zaproponuj cofnięcie ruchu +takebackPropositionSent=Propozycja cofnięcia ruchu wysłana +takebackPropositionDeclined=Propozycja cofnięcia ruchu odrzucona +takebackPropositionAccepted=Propozycja cofnięcia ruchu zaakceptowana +takebackPropositionCanceled=Propozycja cofnięcia ruchu anulowana +yourOpponentProposesATakeback=Przeciwnik proponuje cofnięcie ruchu +freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Darmowa gra w szachy online. Zagraj teraz w szachy. Prosty interfejs. Bez rejestracji, bez reklam, bez instalowania wtyczek. Graj w szachy z komputerem, przyjaciółmi lub losowymi przeciwnikami. diff --git a/conf/messages.ps b/conf/messages.ps new file mode 100644 index 0000000000000000000000000000000000000000..ff36c9f3368f0b09611d9ddf0161fbcc3b4e6e7b GIT binary patch literal 3286 zcmb7HO=}xT5WV-W&?VRX0Sj{&91;YH75uSgkF8N#GkDZ3rbkk83`nvf954j-u$R59 zE!kMeHiQi(zoTdLXZBV1%;>`j%if$(b@i)PuU>V!G5>H9rJ?^SiG*x%SPES zzcI_zMa?{zWp-Z6hS|hi(;t(3mVYsSvq<)%R20XK)Vm_j@2cmSMG?Qcq(8o!E1Tn4 z>ZQ4|Str>L3A;sxqfor%K^RHlWg{GY#JTa$aipqlksPXyP*OM~ucN*=3L|}-#9lrF zZ1W8_T@mnFKB5}d2+f>+-@;;0_rhG&0G)os(PdF}n|DN`FOuyVQQ_)>4S1ABvi(XW zjcylEWa^oR)dh+i*4!oYY*aIksI>_7@Of0rXRAxI$cF5L>Lo|LMBuj8VB4Sw^wH|jp^Ns4GQh+7@6DJoqf6fx2qqf9h)Uf^b+p z0B4pB!HZOM%J1_i=FM0fMC~x$SA#v9v4J*Q89YFA=awrRo6tWtL^lR&=mh#gBBCO9 zZnnVd`nM=ZRT8P5wnY@mAr_GkB3b~BEo(c}mI#S$2a+KDeKBw~qZdxjJ9Cf-&=`d1 z2(=oL!KD}$v~xqyha{Uq6n>jW=*KxICylKo;wG)k^K9Ux7?df%FwoF&I(b!B`BJ5! z*wEjihSDLwN{2riXVPAo{)Ed^yFn`JCyTJ7T_ysb@QGbgs^Y7G%cf3L$Id{9ky8{VAuN%Cn_W}!Qjk@yGjeYhYL0Q z$5E@e13O%zwV}3h3~8#}z&XXOLyP=B2(&rhh|~00Ar%`m$J>dw;&-^)iVl=ac>wQ# zPrxEzi!cW(a@q1Fk3VRPqEm4`!?-~<@Mjnn+DuNOPESShGT{RnShx>~oScfaw!bmi z+*4ADAQdfYsYtZ7AI!76wixWfv8FFH>qlbX$MJrX+J|WCNwpVx?b0xs8!{r8XRO+d z9#k+PjEvl^j(H-C>n||G{3fR~n0n_G7)YVIG3*Pe;967Gc9+>nTV1kKmGnBExrMlH zU@?Wh;FMaIWni15#)MDlFP>UD#d&2-a{61 zil&mlA%01tjsS0IqG0tCbBF4zBf@-j$`iy^)5UsPBogRp4WU=GUjYXMWFyw)S`Spx zqJ8mHehhhE_|gvo)x%n_o0h-Wj5f)1~vCE!RMD2 zN||GkEsHDRghZkRhZEWK7l!q4MyP0uS?(>Z7@oN$f!-Mq+a#M-ZD%bJ#CQqV70=U1 zVK>6hNRG6!sd)Ps3AhZfA<@+_$po?>HVc&ylWs$kP#dJ;L%W=}RE#YTeO~5&z!-2jT`j5h0H5SaKJ6llNcZ0ZP z$2$P+9-T67@xV0c@{&-G*t10Orb<%ln$Ba~tt2_w;-sRH`G>X)35E4!9ChHgDDIks za7}MSBqArVYjA^IT0L~IT0X1K)YtMgNGc$}T08U@TF{s4QUy zi_*|n@jI5@6-{_m7Ub=Sp%rQqMiQ^94vy62p@2)baOM$xw-nz~c6XeeCPFmO0x9;$ zm0%O(*zH-;nq0BAQUAQpElL)aeUrVlCf4{<{Pa>&3cx(+L^MuY!@$HS$8U{>X z(OkSF@tuANRIKpmCEvS2bvy||- +
    + Close this notice +
    +
    +
    + Warning! +
    +
    +
    + Your browser cannot run Lichess! +
    +
    + We're sorry, but your browser does not support WebSockets.
    + In order to play, we recommend using the latest version of Firefox, Chrome or Safari. +
    +
    +
    + Get Firefox +
    +
    + Get Google Chrome +
    +
    + Get Safari +
    +
    +
    diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..1390906f0ec962bafd4f47314b190fafdb7534f5 GIT binary patch literal 1342 zcmc&!J%}1X6rMHe5h2N;m?9cI8<9XrcUT1iHdYn}6v0L;0)qBw6fBa;GFY4hqhL-% zu1RqOjF2Lr7J`3h5YNU!5?uT_S7P?%&9WmZ-i1{8;M+HE-uJzEJK_?;5d}FuCKyl1 zDZKO(4AMBLaS6bdo_Db8_*JVzcO?<$qb%UmvZYmZ<_wlvEvB6+CUoMyQB3NBo&t@~Q*=!TkoE3{jT9fWd)`^3` z0PJ@A66;?llgY-*7US`lzVjEXA32@QU#rz>a|Y|NSS-L|v52G5h}kwVolevDj3FuB z)@rp)ZF|;yJ`eGDd{dJbqSb0$q0cV433-IL9u9|MI2@KFtjBaZg-)ll?H5z26g~T! z>}BC~AP@kJMk7`#mF*t%;;@}`e`2@W1w3o2QmO7SBa2$C_OehY0MGN==h3y)Ba_L1 z(P;dE`lrmZ7oSC=(Ph8ihgPd4`O4+85R1hGlgTtg?R(tZv+ShLT`m_Dl#rk4EEqo_ zUmzbM|Ar?h_#lf^7{4Q5%K5>-6;)zeHDDMDuRLtzSM+jpfn;BghGf= z5USEhlU+C2-In1>~7ze;MEo7gBzO1f6FXR@%lL(Ym?O)w6K#vNF=a#)V?~@8*5y0 zLUi`4S@+RB310bCd*kk^5B@eiJ}l&;pj@iJrpSV4PFo~HNfTzavFSDa?~TS4e6Vs_svT6Lm9NCG+(xq@_D8N9x7V@? zx-EqyQ5Ta`Rl-7rCG)>w_ErtxR2E!@JjaDOdqj$gp!{YqU$m)`)CCsa%y9Ge;MKS+UE>rQgRXYY-Y{C6b9GaM*K2vmP@ziLmMl$9g)S=m-(jNwY0G*N zzwy31hnt*+sQ0)ti7d(%R5X^l3;#LzQfD41Q;mlk-ZvI$0nMxelhZd-lcFpgCqKUI z&i?+ouf<ZCYG^`j4@o&;Rx)bjW0AYuXGL%W)l4-tNV4HNBh>upt-SKIO9){gX8d zwQfh(Lh8Y$+~5E6 zSihdVizcrYw|u|ld7GOGrs4W-bgpX}x~vC#!c1+)!frZZT*ii~!)hzqKht=j*UAX? zFJuH2;yUrvbaVh#H2#;4mIQQ3qn@tAI(wHh&u$#=-5Prr4J8t^h-1X!oz5EKDSk>O zaxew$%l9$}7}bOtc3%MZP!4zEHT12!MZdA&Sq0&Iv@=s4Kz?|Db3`?YB1EMU^10mL zJ!A}ey&l>vuY!EdJ|^CaPjs92{GtV01iR&^5ib++;+i2I9?nakUx<0)vN_qkz2`^& gK@N=vJpK`20MS@7hcXhLvj6}907*qoM6N<$f=cogSpWb4 literal 0 HcmV?d00001 diff --git a/public/images/balloon.png b/public/images/balloon.png new file mode 100644 index 0000000000000000000000000000000000000000..c44eab6886bb79b7c8c0d6365a79ab6b2d369e2d GIT binary patch literal 704 zcmV;x0zdtUP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igh| z053Op#URiC00KZsL_t(I%cYagOVe=}$6ufCcRyH5w-)9hL{|%mnvg<)5W$XRpzI(N z;kwkNJb3Jn@U%-^nso3q5X=rD?hu4{7*q!pT$jv5=3=^Oe!u&Co(|i-Xw=CE-td9v z!~63*ujlzF5#cOhamMfg%)hX)EXda;B1)-2;0h3H=Ya-L0ltYyF@1ifY79KgYVQL1 z+QjupBr=*xrS1+54JA7}J1<$56#&p$JJo7+w^%HGEffkL^VNyDv2!zP07^v2WHOh# zy1JfEPEKZ`(P)p>n!nj7rLZiEN~Q8Wo6Y9RLh-__aY?OL?dvBJ@WsETd0)c;y zO({jGR4R$cmbVASn8n%I*~0er_D(1iA{Y$*SNr?>J4;JT1!K&jH-+3&n-BH$U^pCp zGCVwdJDE%-qS5FD+qV6!3Q z+yJ@(f4lVQ>FH-vQ&Vq%S6AzEd-I=#wV$SGpp^1@d@!I+^;~lLtynB}Cl-sn1Xy2P zc(l3OgexN6CaM-t|H2mu00AJ_)Vd$2ClZPGeSLk8H+N+K_yz0%hwTbf3#bLyE%{EI m+c^bj;5Tq6BCa~?cm4zY3lzSyHU7E)00007A literal 0 HcmV?d00001 diff --git a/public/images/big-right.png b/public/images/big-right.png new file mode 100644 index 0000000000000000000000000000000000000000..24e96387e2f26dab87351e77b68077aae8123a9a GIT binary patch literal 944 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 Z{|^jET)Qr+pWgrg002ovPDHLkV1jKL$@%~Q literal 0 HcmV?d00001 diff --git a/public/images/browser-firefox.png b/public/images/browser-firefox.png new file mode 100644 index 0000000000000000000000000000000000000000..217765e26bab9d5bf5879b56c92f42649b8f57eb GIT binary patch literal 8367 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 FV1iSl0*U|t literal 0 HcmV?d00001 diff --git a/public/images/browser-opera.png b/public/images/browser-opera.png new file mode 100644 index 0000000000000000000000000000000000000000..f728d97ea128317345c3bfda6dcc7bff8219e91b GIT binary patch literal 4111 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 nbpalr5%AnH#kJmzi0 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 literal 0 HcmV?d00001 diff --git a/public/images/engine_big.png b/public/images/engine_big.png new file mode 100644 index 0000000000000000000000000000000000000000..7a91a9bf37ac67c6fa987e35cf95692434ed80ad GIT binary patch literal 1079 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®^U1>oD95!ir@WSt(Rs#P=_3I8Dm_w;K9fPmR1P z-CLN#hAR~pPh|7qDZOUGE%R~9t-M!Ac5dwx^C9+ySrsPM{v=%c#7mRecTz$+?7;W1 zpvoBGP?5J8|17HB=*J1JRnVu}{Qm5zzlG>!q!0=UNcKJD+W=Y(yY}#Yg!Z%vSpV|; zV6WjQ*gD~WQ#&AVza!_Iu{{#BI~;Kmj)ta*c(PjW3t(JOdwQWRNIv?0L`7Zfr9=bm zK11|%Bj9UipuCjuW#ao;KtZg0CCK(r6K%d$^weCL8_DbN7&7!czYfGFF7E1`&s!ml zhOJy7PBY{L{h~#2C|6b6$jq#znew+jN7FWa(@C7?p2QB8_t7>LmV*)=?;gv- zd$dh8Xs291kTBvi$$XG`U%xBZv{>gy7|Mq?$JfCylRFwN@u5hY(W5{Ab&9#K3Q^9% zM0eUAjE)$#B&l3oVTl0+cjS8-tt{I|!xEeb@x1%L<2=qXZGn%|e`+W&NI#r1Yu#ur zLkhfE!)Y>o!pVdS8GaI3ZU}CIB}=&xlDuWZo~K!0ffK)D4|6&dz0fD)Q@QT7M^xDj zj~nT^O56L6?LEIEbrz<5BL~KtVGh1lPhLm{{R$2(y;CsH`Cw|c%Pw<0cE7TNe>63w zNo`NO`|Mnc?IyT~5~vz&M_ymq;A0&gVz9d`Yfj1DEi-~jl!wCIw&84WH%8;M*$Y^e zbhBnr4U>W_Ks~g`8z1MqP2p2-{y;e~hpF=`=atBE{7Q;n7wk79Oq;9u$vF3ZV=ck_|4x~mqcMjZ&ymzf*9y z1P<^7C#i?u$Lx4U!MO@OKQ*C^cMEdPMX|C4J-7xGGE0efZNbhZj1Dpkyf66vEX|wX zNp~|5*R&SAl^Je5P;DtwT(S}|4?7$kgzQt0Tfe)nzi9ZJUj=x|#X#JHn=cNj*64FKFPGYkpj{5Ci z0h7r+a4I$1w_T@rXf{6^b;w&j>BizU35A9p%Zj4>9}eYczUML${N?pxUOtsTAJnb# zd>N`)6tOl~+LndaLjhn*yI)z1J^lW@DvMq|dOzP8Jq+;)t!oipw^}C%tSjaGo=vm{ zaH*A_nDxKqj$&+N9PCap$uaVrICR%Ty^Xv)2|W44NAnd@d4S9HB*?JpKb-0?l@3Pt zE{VGibYyc8roa^1FtfGD2k3I}am)m1U_U8LQo)eR##evWIKN2$M${H#tg)E&)ARP-ZZ$;A z-P+Vfhf5N1saAVvoe8!H@w~Q{2kC)q)PRV{?}ut$lqpYd6q_4`MeTSZOhR6Wl@CPI zlmYaK?~)fhrQv&61GZV5%jeC0xcc0ny4e_cDH*vp2apK?MeTed(LVa4x^u-K;JhnE zaLgm3DoQ|X9^ep9wJ(m#vY=TyoABG2Ix@}YVv>6-U2N&RNV8eF>+Nc#u2mLSVzzkM z=I&;WNFooA`@{Un-#8a4lBhW5h^#fQ56-Kbq@?~$kgC7{gh3EbHeKmrL7}-tYZbVI z$S^F_Un)z7;@og#xG|r1yq&|()`5Fj27T9;v9+o9U2~z18Lg?Tp|Sdl1bAY~qPLHt zcsOEym>&4I6Rx^3%PiIQ(dr{ zlbC`jH0I<|j%yuoLzn75G7IOS+Un|fPDCq|K!bl6A9Y0eE^i8vXbHRw6_!tgaUD5! zXW1`#>?&(St%<&ocurO1_L82jNB0-}TAvu(hzPG9+)%{#elMM*kM%ekp)Y0^urK;h z;w37}u=4aSmrCKQYQp6^b>8j)Y;ufU-Mro8MUs@Rm!$~kHCd)V4bRV95uRM7>v*Y( zKA1l46BEV0{eVWqyhIZD=nw5A@&fb`wH;auKw_wp+00*n-rGJv>~yv^1aYsRWwy9` zYOr{0PkGZarTDp6<0-CSC-Id&`Bw3Lx?&T}@hn$?Zle6+R-#@uueNi`Z+D3~sZ51@ zF5q08qD$Y?odr#yH(ZqCC2)8*#T4wNQrq*ONME~ghx z0~18vXypyHrIpXon8&6HO7Ert#RXn)jkJ%i;x#X`#)z*N`~AM$SJIHqY*j~aAIG%QKHrAB8Fpju zg^kA89Ml?15Z1;E*~T{L#)zje?%Y#GCw9@6Jgq_!q=PB@&0LE=d{V_!$w}RU#~<8L z$6=GDnB?X1x%w536F;26SkqD3H|+^pIuUvZVyeLgyglq0K~4Fs5L2$#kYaGpNw;2K z?^@B}%&PWok5&^8_~vnmRdI;4HBmqXBkBVRZe|7y+S5+A6^(avXfpT%lrQIHOE+_y zPsv~!1A7yRapv zYxOcxSkQbGk*r~`H7GPNICh3(7>KrR`7ES7UgT5~KiAlqq+&~~8=ptdhdnh|b8|_-j*OoE5$s#h}n@ zNIQx{S@D4@DCJv%%-Fy3%_}CJkZ+iPii7`fdRn@)Y<3*egIzUN#my8zn{4<3;PDF~ zp|_)OCL$>1bgf5?bTje(PRzqT4y~$P_71#M;>!kuWBa!a(?=oS5Maz$Jlh7bkU1t% zJIpmu)PWh{5dD|gPukr1F?6txYPp}IG1W?mFp9Uw0S{not@wp_WHDa9Z57M)(4cWlKM^SOAcjZ} zbdH~B;&QOp2eaG_=P2iew9=>f{1WNw zyzW>eOOAs~0BU;N|DUrY-e#6auyc3ofj0c$xrU^L=0=i6#I1q45K3o#N5z{X{ziCH z5M;dRECyM2y3v%iMa4mx{~=4$Isa6?=zsJ2;fw|xerMu_omFOIV9#j*b6Rd7%~(^z z=+sq9;L?p?Pad+BgBPPQNMUXjWTTTa-3vgvk%hqkQl?gD6I5L>$$a>6RU>QkqkuZ0x@by?s%2*a z-uzuc8HLRcEhZKNv71ZRx1B<#16BL@A)RAe z2d64+cj-i@bSpc!pN^TS2=ePJAGHm#sVM870;j>075c*1^V;(}edTIFP(u06<9ut^ zF2b%Xht94DKHjecQ2(o`=}$sQfhY%7v$qc?+9B+l+*qkxol1q1{a+CJJXoI?jXhXJ2<9 zx;dDCzwMNAL6#u%Lx|H8Q!QpO*9)MizI39CP22Y5$AqdQ#n_>2MWT`0?)sSJOw!3j z;PfQRgz}14?XP0<0UIBRGKfo&!MoHFUUmwQG5Le_^4OBkhqQ<1I*3{YVt$~vrMW&l zVz{zaGrq`L$CQj?J3tNbr+mxzv-t3TIA^q;K5nC{pXxCxs9W?mla_2nwBlmEb`!!8 zkLT98$22N|9;=4QTb`9B=4*VloH63bD~gUzjPZHJH-p%v4fkHz=Xc-?0zFqhhO?7K z;^hBu1}>MDJiV$_H);#YpDtXh&R;8hW6qLkw*{IV`{@K=SG*D;egLJkzZ*1K*IEC1 zKzyIy?FK%XNhMQIjr}Y821mun0)VpFaQmi@D$m9u44n0(+h$+krp(lqJ{*|DJto=nV0%aAEoTS! zOayReKa)<$DnZjn{OB#;V-U46tVZ!XF z6P#fO+&EdIahIJk{n*xMc*@f}LN-xAo?53O@1#v=*NJ}S|4ib!C2F^L0oG$ z?~Q!z;XMR3&ow^lr-aQ(X}0*^>b(?ycVHX^dTz7RH{HXpGV7Qz@!*_cutXc;PvkN? z@+3Yc2%GZSxHeuBM)Pnlb`2(Kc|sK+FBlGby=$ld?7#|^$dy_I{Z@v#U- zj@nG=UdI$xB?=)ixrpJ$^Av^=fwbvqZdxFMLj8YU%U=l9G+n_2$?j^gwA2i6O&qrLa6o9$!z9V#ChOSHZ#PtBd#JWKT+18(WLmX)cJ>r|bmx3*t zPrt0LTPu-sJ6EpV>t@WK{}m!W?=(z_9Ikx0yOjWZFnwV9>Khy{!{{1a7p98Vo-pGa zNJik;mIz&W#-@|`ThSc}-K$K+21&QxyodQOUS=Bzj7W~JX&t~ANM%SVwWWOSH>*c* z{RtV}lS~h8fM~;-UVZrX{D~;;O;4wi=uk&X*W)Udjt)hmRnUuW5Ur=D2tjJ!2UOoK zPxi0g`6JEVkMq008qt&h550A_*FkIj#EK-cFEwZX!>RnT-i(WLyf#GKS^g z@F?qP9$bSW>&#!it>2F&Ot!7SJC5|>W4RdrN7j^WUei+C$Ff>gpY{@N*(l~O0 zx_0aNFrayhL&r@g3|9k88XY01c@>ceCH~_$Ve1{@RATXL%W+S|LH{+ECrV z{r@oHFH7gaTAx(9=1!Kemfg_WW^*KT?#4{Jrw`W% z&@@{3)zAGqzFQKHBPSa=?+U4bhjl_~8cpF}kEbRSv1r-%=S2+dPS zxkoeqhvP~bx@j9w^{n<5q0!o zP3_`iBl=~@D8Iu8?6#kb+zV;r&4(-s#KSPRyL2gUUcZIe*bAS*vq{|kMSt4a4g>t$ zi^1UO8)x49(@Q}+1~epFCEKGr!nw*NJECWY@`_83y!9MFUr}~sdB+WZq}p4bsTXWx z>-@L`fngnC`B3tq!t895+FqB}H3&+w+VXNqm|!BrM2f-%x18SEDed|*T@q2xH<-%A zgT-BM`&@r*Sz&MmZ);woE{g_-hp;ASW-Iz1{DFH+P%7=AEu&n1=l+#Z$4y>s?oz-_ z+&3U=;56y4RFsbSwj#E-A$fl0&t;28m4Hq1g^jm< zP`>`+iYe6I!wd<3(?j1+wzg1%5jAo@NaxH09h`tM9@M!=*e25ewR?v-(^5TH+XC5X zogdOH7GFN*N8agQmQu^ygL7k(&HUQCo}&I2jOh9DQ%{ix1~v!!k`5ivLEA@71NVzTf2{;QZ0-Pi9PyT`VYoDjGX*=EqVS@)-XElRqbfR z{KZ?&iuL=n$Q3b>xC{~7ZSZ$Y!`FqcGOsVnGKhvET1(fj_Pc_6shCcZ)Fz6whGxGS znZP(=zuvbYAVw->$ZWdF9H$WtS1tD#MFQ#ktw3WqH(|bdZs`ReBYJxvW?NoN-;}pC zW44tW73UXEdBTc*ai)HHky*^OAN%^6!q&{&1vI5PS`lTxl<&|W>!4xp3~23`ua$<8 z#LE~akh&OYhsbj&7V1A@D8#t}mRwnRK()jMCe^%|JLb0CC6|~79>D0 zFdsFBiE*ZNn#Tlat(U$F1O#6RZeoBB6JHZgO21w@IMKxVVGTRP$!c%M#KNY``T6!Q z{TJsfTswQS)Q)R^3#b;i6M1?YgfK?+QW4&Qv5p7!T23H*D&6bQC?lJ7*)@@Wt!FSw zo`^+?<73$OBYs&RORFHwxfYnK1&h4}Pq-UTc0x?-8f<|01uFJJU&z=%c=80}ama_G zaYRR5JOr_OBW2#~e9nEWOi3uWk702%^uwJwSGFxi(l*IIO&RTDITp#uQ-OK%hP@A9 z%k#tSUQBq1Wv4>+ycbi5oPai^VZNhwVWasW^M0|5h++!>8ad6JLINC&pWj&<*&wlMLU1Ar=a~<-QFVCz8D*cXRV81k#8!$x zpxMeAt408NJxw>RN_xC|+>iA?_U0>JN6<${)!t&etggxbaB`9{l8d3d($LUSSE_$P zEB78qk7UWC*UE2hb32Cw|L(sAeJ?k|YWtE8Wk1f=`Ng`%2ACW7L2P0q0Pf*NM}tr{ zkmga}f!8lC7N0>%DS8FgFBsR!Y+Fp1>ih+bbG=gR=j`Q@gDTYsyNYW?yQsr2r%eko zVlXrntk-_N-lkn=me3KUHIBMGo=uaTccoUZo(9+h@!1$XHQA>h+#1llh?cX>p40u3 z9mT@JFA4;tzsNu32z%XnOpiS*K0}#=B(v;(vvYHtJ)tLrjhM1)i<*QhS1|h{*sW2G zkb@TONpsAS8T0$cp*{xPeEjSkiXDilFF{Pd1hHx4Yu1jY3FS5-vj=NnmH9O`TXKjf zg}&7z{+h>RNSj;e$5M62`^6*d-A;}ZHE~jj*vtV@#cI4t_OGC1d8D}6V>3S1RD*}v z0mCJGFO!|o5|n3#JG&0o&|YwGEwwYz|ja5dWY~&(TD| zRji?GGJeMk<|E2`gs`KncwL}fL!^NPz@1%xex~ZN+W&H}{4+=uWV6;Dsy$5J<$=}L z=mZD|HFK!OlU8B_-A|ZCVfNDc$fvsMP;j!@%XkmIkg;8zIs8{WX?+AGg`#$oS(n&h zf9yhP3SpGvgXUf5T_v>F9e>@x_0?HtYc|q0-ze%%k*l-Qi%ynxRD*_NXa8L0y}?{a zMS7c&nLQQsRJ9lyu@&YVSixB3Mc6m=?@nA1M=kHd-YDSAA}Z}@JJR{jMah@WbR!ya zMxyI;MD#P4Y2)vDc}IVu>Bl~lpu9gCb_#iMaiizhjM)h0p3+FddD@iU{{W>xln4h{gY7~tf~Gn!r( z9Y$d9e>fBDuum!sCU6I$kbmK(_9{N60G@FaH^(i44)*hd;9Sogx?Ypy`rP}T6cV&d9R z)5mFCS|r{te%_hLJ}aMWqi!pf+r^o8Q%7c}X4C@SEvjy(1QoCLNU`|1ul zBbGA#l0|hY)>6RbqYt_A>qd<4RA@Vbz+~m95NlU5_je_GV+EP%y_OoQ`{OGX>!V~E z8Ybjw`=n-o`Y}B24OuYaV^q|-un=1o7;!&ff@Swcx2h6BGxT;gkh)fDQC1r1hb-iJ zb0<10*Pq{*DZZ25IK>24V&tZwp1WP4(gRh_=+%spS zP&pFuJxWrLSL4B3f1Jd%0cqyfa#LZyC%t$sTY!EX?#=4js}UYh9CyY1YT6n?eacbC z4xhNfiDu4wJZAJejNmXW*CrFzcFS&Mgfd1f#*6kWM)=Ou`1wZgJ31v+aNfgJjr&kL zUzn(9daE-2!^xnx>Wr}iS8c-Fr34|=H}-LnGO|>b4QFb!0*V+PR5j{Wsbs}Jk2ZNJ zDL)`MqrQ23YT$Hy!tG@FjWL@&4$h;7BZ0#IrO{a4uo|P^&q|}hT`XQ?NdddnrQg=p z!IBhds%w@n!q#E$HHsqghLJWh#bdSCda$W{rS4{^(@yTlp^4_($4cv}EF-Hd{o}tv zQc6~x{NH}kMbk#A?p=srC}?Xg-@26QBJ>sJiy1D(f6M=Nn~-C=8}YHL|Cy}7H0M!! z!rO9{Cy%J;{xHVKjeYLF4L zNHo%%MrEt6DlAFQvOJaSxtN?uayMaO6Yt&86m`HkieBvgojro+KlrfP9a}Zn81z|S zCthH?i%iVuFaj8!h!WM?L;ZH@%p~LuPeGzfoqjU?o%fIpest%H}jC^_g`DJlwVQ^J^Jt)Z@GaI2cfS%57Y)733E4-yBv0Qt0 zLvp6&pGe5|`TE#$6|m_)9H}jRx{WIg82b^p&i2Ucbwo4BXiR9l>5QCHb~H@o)unIU z9r*j^$)_9#WA+X#%?7$4V(z-15u@>%l~bEXj7!CZmJ=@l`Xb3ZbP=y_QJbIR z(Za|2QK$AOiFiZmVTwVFJv2!!b!E7jqGm%6O{d*j#KqJux-E@gBq0w-udt52tHE7S zUKQFD0VZmqb|ZW$HzfyL-AWVXjik6LPA2@HypCWipnve%IJilV5_MNtv8!0K0Hj2X zQKoxMl>UG^{VHFyPe_r{zh6#n=!e>7(i;?1IMqwEqPSKaPVu@8OB$JyMAC6Z&pVuI=43PS`)ScHBbp(H>0Y&tUmsS^YhPD z6Kz+1J;o3tQ8=(mDQjPQ2_?N*eNV!+veq}$|Natqdg%?IS4yf&^jy3vMFbzSZ7p7D z#b`LQ*h5&NfoaSI#H3axGg{rAlbh%S)Jl-#2t<@HUh;C0(&X6TlQ*p6Psx3D$|Yz@ z9k5DI@_sNy5fSgzT*Our^imN-0~3 z3?<46h)cH{VKKmFf@aL{(Uk~j9xK{@+MTM{adEK?LPh#b4=DPMaOu*k(1ww@l~>qe z@y9En)o!2RLTB#R{Y#k;S^Vp1G?-75WH1cPfSo;^Qb6XLp(&;^_@XkJkZa8CSnQaL zB>u-|BauAfJE^V==nQ}2!l`VdXd#!ocTneWM?Anx%1}r4%QY|37r*%B7O-QpOn!6< zgu$`qMi~>0!@9dkkKErd*Vsguq^O7R97i!{>b5cLT2IPJVv6QA#xIJUA9G314&7p$ z`vzD4!|6X8iK)$u_)&}n*B0x-Ma1&A_1fi;t7dOme#R^W{)dxXRPrbF(qtf@?% zPfbyZ)jb5}ou0^N)g70fGeUo?$g+NA4ML6T+K2p(tj4%wY|0M=O-)^>@|`-`Z9%nV z-YN#{*V|Q~a-<;kI2aqB8Kz^d4naGC04JX?*lp^V?WLJNngt z9SE*QJ>FPNuR*~%41o@sAMMnjtw=3q=Bhu5AR#XD%NyQ-jEiXGgZA@PU);?}dVlm)cD+5yzo4pg zqvX!A48C>FyC~`Hsk^?S=vxY+P09<=H=ZuCBu)jOaVN{I*N}@rFOzH}GcqZ%R@C|v zyzXrh>A}-??W|MZ=f_!GA1Iw|szAn0K|@7ONn=%qD0A2g+l>PWgs+X(?_R9n=A`v$ z`tv#`)HAw~EZbS>Gv{4Pkhlk*eJS=m++CcW9ad=yqo*$)Iuj1f=MA6xmr*}$Cv&Ik z66ANQVaH|2Pxc3oBVZXq<5uvR_V>S(vG*#d$h4|AbK6Gk=}4*!Lf2(kSbz)HjrZey_8fJ%g{I*H?{do4;U;dAN{?XNcf}c(UhBm9n}iI;toaDP zW)Pr&tP;-5so9-rxrvZ1;^Vuhkdbos2%MG{OI{m(lS+K0$FcG4Xy`!5=* z32W>fDb=_w-+ckAZ^Bz!aSKyyZI5L4+nI1W9DD^YQ-u=k%?3CRO22w7$kxoWx}H@guVxpGQk5%G0o@#Wz=GJbP2Ma zHiI^O16WMiR?S?0+obYG?hnu=>iMUx!Mk-#<({YLDsQ$+zeadPpl?awc3j&6u)_<& zxgnf_J8Q$z-X`}lje5=8IUt~M4H@u9r^<2})nOx|2zl-ILQkEarB^|buCqxD?_AAO zq9m;`>AgMgdX6%C^G`4suj8#S@}-mLFE$HevFTg1!O-!Hw5bp8nZ2C-rVG|@96 z))Q|oXrwfV1$D6GNjt^JgJUw$ZP;zSv5i(rteA?|eWPwa82Lte#Gs?2ap}SwC^z>j zdzaJ5dqM*$esA{5+E9Y5wM4t9kLRj@S3^=dx!av9TH@Ow=O5iqH$i80uWM z$mFwIX(1Lzy|wautG1pQ>7LzC$>B?@xBj!%mIv@j^K>J82}Jm&W*gaUWJ0-ocY*{UUP(V7ArW&j(z66dKtk^`<3CftlI!G~|HnlDcDQ(%GAM+~D z{VAy!{5H%T7CaO4WAs}SI%IbDRN|m*!wXH?I?rEYSpP{eW(vp@VTvsws zgP)MDr7dG%Xnd!In(m=W$vUjk#Y3Hy03TY;L1EASw8ln9T^hat(HGA_u01@n!Nw75um;4h1?wbzGiNqMHCb zM{6uzu#8$N{v8G?wC!7czb5t%UEK@rn00HIj~BJNLu>0-P`#V(oT$yu8Yh6=Srb1h zv={sgQnwSsB{_Lg;$G9TnqzV_oQnH$X3#Ke@|m*^e~ivG?UONm1{lWudydGq|J03d zMgw7){l`R-ETGS3;>z~jZvsvlIr;fvTQlF%r#+vAZ1PRI5@8uDZE2O$M0pvDah>L) zcNBA8qd)lG@zh&K2)z?*AeE$y2UY;bF1ibp4)L0(;qk+?L%9 zZ&cCkW1eGcr}=7DgHY5inde8H-GWCF(b7*&AdBhz3&mIboUnH>J?M`w-u_r<*K=Ro z+g)q2+r}tsZ~YYUm~zOvB|w66%7eT_Z< zu>Sxed|40(JN?Y;9$fzbtcLTi=69Q+u+yep65w4x{8me=|Wv+LRfWsz;-m({zph=N)>gpZQN$c7x3;r@I?=@N~E zi%i#i!>3HJ%yJm^5b$P)nK%g@<5LLd< z-;gq`*~Bv~d-DC`xF24C{*{tCPRP+(T12rbATfd%&Hh`j4~zM*aYwKFANod2yg79H zf9WKW_sIiG)NUecWVjaPmxz@fHsX4h4-*QL_I}8oo{Lmk}LKD^;k zy&p#K9&Hkme#kDP_n+P`+iaNKjGpc0AI#lDOuUlb^6CrNB#fAlTFDp{8&j7wlyB8v zC&GHy$o{sYlYPJ4MT_Xan&ZpHDLluat(4cL)LX$~Ey0C)I=KU$$Cn?A0Ej)`>14`M zklX$AU2AdW_wpy0r~MCRpIC}l(_xCtnFLG3a*{{o@fLm|SK(Gh_^?J5_$$TJuf9L; zST=*EY8qvv3FbWv&!=fJrP#Gjb&^L;C>c01q)MlhjLY%2*?-x=LQ6Z3a?d+n`Oi%A z4ZoN!6HdNaqLNJ~LAEz8wpPI_>xkm|zotU{sY&?0*X;ZfBj6MedG1*Cznx&y?JX>| zR!wHXWo=K;LO>UC1z{A8Cnjjof4uk?rQ;pO0}>l}sDNAM1R?&kPElL+*dump#b z6!M>$wQH*ztqNo>ZDwsz4XS%_XGxiY1BDMXMu!arnJlVxXpxqKT1^XB*6EAtET%g&l*?T6H7h+L~H zM=h7{TsR=goEBfQTkZb$tOwdJg!Y&Z{ zj8$7=$FD|J!YP5`=!Db%05d$(d8oIUu4FgMt4d(7^7We1Bq|Flyp{AMxfh2j^Fsbm?Z6YglFk5fTfl_hdc!tK4n>00Oup0e{6_^^rbS zn_2$=&QSTa^lRID$ZhQJT@v3)`m__ghGt>8^<^Q4r(g2tk8ebqiUoV@?RO9XY^aXu>u0%+>z@R|%LsKhmJb&5Pb^*V>%O`sMbeEF6&y+?Ne= z$9lKhAU5B!88C60pi(i>vJ)22qKG!3ff2anO7cQxr%Qy>J4cVpI+v~I-#~k;_}5Bl=yb|Tlv3lBxZl2kOw`| zi=WJ2HMX+t2Dz%=Xvrb;MeW_i9R|QkBa`;O$vIt;gArS&9%b{EjjSwo`hJ%dg{k^t z3%kpOEeVZ)U|2kJ&a&_D${!>M{{W4cAc$idNvWWweH=FZ2 z^8#yR)U5Q$e7_8T02)S|@!L*{e%z(m*1zR($%zFZr}{tU#8*oexvT10<(08v71S$h z6!tI2p;F;h8UFxki-{nb95wD(*cNWu)jYeU`JYjX&f0&QtRs^2$?4l_9HJ^#pd&`j zckn4Zz;E^(c&@qNANboMBOusi1JCbD zAO3N_%vz4QWj)5Lrc0&6J4DGy7 zV+Eo)kzhc9$WTa8PKp(N;fYEk0>A&$^-cwNx0?R|F8u31nJ({i>pN$+xS5(Kd)tWF zxh)M*YOC~MHhQLmc3wgJ##@Mt(7_x?>C27v!~7$y2H6^ydT2gm^WBQ+KbTtejpGuZ zS(ZiQwWCVjsHbttymH#MuxXxtTI-kEH=2CYWe}~tpJjNqmeZe35~*+<0*~^2XDj}; zBby$GxvtvN&ALXBA|=FHlzMz_7?B+Vw9E-TIa8)2*ilbe{Mw%1MAR(rZc+ZBuUX5W z+(!Vb873jEi0$zH_zM33J`POFT7Ay1dQkA{d9w&Kda2jNGHKjD+ z3~Y7+of^4f0v6coy3O^jqj_vEPpp>F%Q*rQ#YtF?(Y^wTG=-a1^96(+g1Wd-ArQ8q>3y1nOv{}cTlFg@{}KchXs%+iQK)q!&R`d zYi$}?>2VAQ734JLwBQdT_K(AjGUDEtH|GAWZE3H0FuaC2PNaA++L8Gf%7rSdlWg2=20A0;? z(e&%cuP%q2A-yr%+9$-Q5kmT$X%1HO*CSbju5)b*foKC^q)+t5nAuni&rO$x307NUm>5 ziu1~TXbExUJ1Im^lvx^9dq`9Pvnu>Nzt+l(10YH0kI)^o-C${RMs9Df53K|cUeqvC z@w0>ewi6NN#7Nz2gY*9YN-{Ob3Yaan2*$rYRs$XZzKk&QUjs3~8I9x>#g6uZw>+J~R@TWgzW+8svP z+BPCC5LjL|PBSn%%kV;o& z^;DWFFZo{%MB=Tb1Hdu-$}OGHfbuL&p903VF1XyejZ8w zR!E8q)q;BV+I8fx!{zI3LgL;xv7RQ4oe{Q;W^zZvE4s6CZ|1>NyOaY-otk2BjX z#e$^LTH0I5##LiLJw`$Zq5D4;4r93_Z{EZoRK1qjtrAui$tTu*9$yH0fC%{kOl>rd z)^!gvO*D^oCXe)rD;Ug%Lh7Gn9;So&aNl}pb7ekLjvaH$6IuC_QJUM!+C+kNhS@z! zgDa~o6mf1S6tOMG;mHnEz?wFLv>NPhbFb;sNoQvjp^6KXL0KZA#<8_1E5uRQ54M>e zyCe;nUze}6EjHde9cxBgD{F`ab%<75hj($Z{_%J#f5dVzk6T2ge3P9&&E7!rg`#VE z4aN1wx{(yKvAMTc)#D`@f)>i+=cGG*7dMj)0KqTk$V{&cw4r-lu3_HY%n>6FGj zTZ#@eq4;9y&nqJBknUx+5&6eXmHeTg=_#e^l3k0tyM-LX#=L3&05xP{ zYo(TTe&ie;P1f|^GT-RN^2X~_xPmz}?M_zpq(Y>vA~Zgc-M`gbu-P`&X)3h6pGm#E zwVyUoc(=nOb!E&DW@+boA?0 zRM-XJ6Nx_-HM)WGPe!+4b7uNQ{)cUMsp=64;?){oQsOmugR2LYyl6jUeVlsPLGn=Y z?vdsFLrjX&?^C*Hc{5yCLZr%)bVrFoks=fJ{vU;MXWz3De78{Zx0QUm<-6Of2sI0f ztB{erCL*FWCNN6M01O|OE<63495gpkD?2aOyrJhA1P!NOrmtqvs~3Vms*SZ*iyqz1 z3C#6n2!qK^_sN?70F|z6buD5@t)jSM?R^VWKhe;sF6I+CnN4=ixTUhEEi@|RIVPzAzFezdP4!_FBpDY7l%6;^kYW7wT z`GQ-w($ea}XhV8>S~J^4ArwCyIPw?>u4v-1vTdg7x(=fio!^*=xSq?=kX<}dU86-2 zW%{%59|G|^*BL=$Cbg^0Lg`jZolf@W%QsQA#8&E_nu*_aMN0GG@p4+?4Vq60r5h_B zFusB`?LS~~Porni_~Ug>WXNUI!n@VfAM5kPYL z^7#JO!;l;7%tWKEG@WYpOKZI|Lu)m$jxi~+SCqdXD9qpQ&m1Dc2xit=-j``5lp{%- zP@d_b`rGP&CBm|@fT+kh^cgD>>-Mz}M)b~O&~=-rZd=Pbc(=bsjEFwFJZQ1NPUtw- zoQeJC`B?*T>dq1b@~5VLN=>i9YjbVpA$Jy`JG7BSaVM(+#t*`vQLLB(jssT67wOXw273HNdwcYA;o8LwpxW5x%s6&^*oOi;ZP8?ORK+ zwH}z7c8=`G>l+#Z7t>nqKbr-fvCENrR=!Y7BD53`AoLtFQNR6Hk5 zDQXeNwm^a#fd%FIOm|oIPiGvn$!%yF?&2tbDybTh@5GVu0fZf>qE~hh5)0cKl}pIX zWO{P(AXEtuNT+_aQl}!z+=esrE>HKBsUQJgy8%l+@H6V+qSjhZ|Wrug- z0QkaC&Hi7f>95+t4KO11dk5v0=ZwBw^4ao6w-YCrEQ;Cb54$AZs}+i@0Yq5AUMyRS zrW#G2oSwm}`BX#sYpGen{=T6-yWB}~+Ziqh<;?F-wUOWA&V?qhXz} ztWu=vXz3@WKX{BcR#wDwPR|FH-%-Bv=Cu{pruy}-mo1@!(&j})D)P>!kHOWHr7Mz= zJeq|o{%2~wVNW?->sEIn3oQ=KEP|H+{ch|~C{jKys7)}7UiJ{aScg>9C-Uk>)86@C zN4e&XIGay!^~GQNoA+445>Ur(htB@ zo06s^)&BrB1O1aX@{g50FU%-p^Buy&s%g49>L%h?ho>1zstyWQ`;=1riTijtfS^@| zAFNt0m_IQ!3r$N=hf}l+_m8bb#4|w}juE9;FA=xGyqhLLJlNQd;hJh5XFBGAZ*imD zu9=`|B_NR7OFVK!w5Qp4;SXN8Au}C=DaUK-n2jpu&Av?2p%HX=IwTb`U%onyl>)tg=vxfXi2Q>f%Zqsg=S6DXQTU&L5>vvYr zeP*Ypr)r?d_PfZR>twh#*k8?u7k{VZlUZ0tqj}BQe9;}V-&-r$--r~JxZyJN6dSdeTo<^Z@5r0)CHu0%c75GIe^=@BeeVnlIfy?Y+ z9uip2i{;CCbj?oZ&OT^MC37o_3wxn3c@M^G6l~vU{>qF8j<+6`S00taX^eN2r*c9?^oBAdWcanpl#*y^#u; zV&t3rOU5ghM{pR`i=X{ zpH-crji*mZ%Yz!nD)HQp*~VNWa(~>Q3GxH|(r>Qb-+7MiNNx00xV+Pt7gWZG4~p4SP6r->K_1yktx1BvqDa0i=Z`SjUUCjLmv4~&16 zg3WG?uVjMbOuV$b`nCLRXD1#&Tq7x|AdZ5&i~>OJ8Hl62xqqv!qCZBfO{(3NhS}Jw zkB_M0;j3Tf{hX2WVNABu$?s&kwwbD2-D$pHwXm9dn^;uHmkJZqSlGu^NXmEVExQdGk}zO|`F? zw9~H6EuwfWu2M@l?c9IGMltIj^6QLb2=ZgYT#_gA<+Rq*O|JQVJDpckiI&e%l2(ar z?Z{}?(1lR^2t)qg#MvR_wb3Q={+X^?TAg+@XNFk~x_Vba8NF2;fh)Y9589zzlu70m zL~>0N&6#x26J0avh|1;Tj1jz&5&OYP@r^JU$f$@9Mbv!h`BmlS7hXYz zIjLeug9k8I{yIaKPp?zCGGr1;^$4c zS!0ky-xJCuUx8HD?6y3P%t7KC?2c;>CV75XEVavNbk^4GzO^)>Lvbus0i!`1M14TS zY+`SNm&eBiadT!(a^~~RI@3n7*R7I712p&B;8)>0pWLo?q)$|?XbGO8gmO?*|sfI&blK%iTJonRD>WiyI zs@z^OwDxnLhE`4n%(r&4!id)C z5~BkoVu153j6NU^%aYjdY)K&OHchmDI9!`cm?g3olU=6?#7xU81n60rWCR28WO%Qe zE*e+0(q`5nc;>t0LL3BJ@8(%v|1EmX|fcpig>YKG+_H}3#-$RfP6xN>8LCIk18vlzLz?XNUn*<52QG5*P&oqf9spo&o%|7ZYJu}T(ovxP? ziBjeZN^>XSD*UMI02Kc3E{y@t?`tHJ$o~MbPAt6p`EoV1)MxX2w;q!Rw-c}R8jB-2M%#9&o_LT~A;(y_A_;(iK|JC(Q1$HWh z)GWp2oRA4#+{nCrXipgz{Zrc&_r6d60GzP57ER^NFy763EGcqYNyupkV;B``0C0h} z=-6x?Pvl)g%sM62zOAI&H1{!FG1JL$>4_qUo0as~(YZq7;{IQ=hl{_H6A<47X?^TWz- z<_{%JC8P^JsinH#Sfh7%O<8I7TbgoDi}|r3FFw(AFEM$q%R^q%ZDZ54XQ=d1?dcJR z;D3YavbN=Va%_Qs=r;cVH6l{#cmDu6R@C|0{u8L$zt*hno|5u5=|uv&bFo8D^>P4T zLH05>I{oe4{$g3rr>37JgkG$KdQ3;75Ik z!T|^+49@|9(~lWTr=+S$Knk#Gf;n}e`(Mq0F1dgL&kPbRuQIVS{6@WL%mo$i(-2Y- zmRiQOXFZ&d+`Llh&FWb#LG<0oELZ2nYlh1L2JDws^9|RW29s$9nu)60tHm|cZ^X*Y zBTG&!eKhKLsQ&;}J{}8+B9Jeu*F2T^r|0cEO>ZaMi+kNdSjs}zb22c|Ov`arH>sp;Nfz-bqX$1@m%_gv?PNhB zH&y*6R0*rU=(Fu7PV&8!mVQ$5=9;$C{_gKwD%{!tt5g!X-Q+AkoAz=wU*|L8zw=&y z=D8$`%8*^%+kTeSu6)HLw#u|mP+PMq@&beVr74N6?TE3-3*`R*%vrBLG<9D!oipls zMz^PkfRT`}Fu>+ANFTOsrdof^xNCHoZMy=pv9MiNO4Kc(dwpdjeNO1qxOiT2(9vpD zLq^@W;%~hGy#q`0-PPykKD3&R$hN(cPi;3#;IaHp{{S2)c?VuxpZ2iGUnB$Gr{<3@ zd6oRWu;b`~Lv3%Hs(W-r8~jMwUT_fuE+N$4a@&1I+ zVhP6J-$>02QN|ppXK6bA&+eNZA<{o%0UiBC59U2XO1IF1=^kQby-6LOHodr-X}O)k zjuA$Rf7Qkkkm{M^f#{p)dd8=x`C?5j5Hyz5YwO?1Et@K<3bQjrjdDvZY4NTD4eW&Y zfQsmyS?OAwu>O&-^Ax(4nj;2itnOsBD8#oC(n|BU5%GU7ES#q;t8bfJV-4^0B>FD7 zr5!*`=2>C$L&6*CmJ;4vNjE;hRggl|_ZT?jc08K|BOSt>ou896FRo7hOS!w$rFmrL zvQGpm7}X*4?dqh^Q;-SEAWUP-mP3kHRrBIYE^fTRc4xbr%gt>GR8);E5zKKz@T!R? zj!#S~Dyl4h4g)y<010FxA@woMNW*z)6EZE{r!>kfpVX2`;*2#tFGq^Q*ZiEBl(=_d zBM^3aq}q0}$)TNtxQ?ef|LMk$hk7#((vfAt_P*)lK`{>vvSJcp+k*;@x0t&K7f0P<(n-;;U_utJt|T={!ay;&N?F5PaDbb(8^uNM%i zyH!_{U;CV6{N({6m94xw`-WfNGnkxw-(UyeHZwDwiQ#0L9> z5Ki45YpQvt&bQaLJAFv#l2+0-SfXe^q5CJ(<;VQ4SYaM5!wiOw<(uhxH;}bko8L0| z-&4BREai@%bAR>>H3%9b z2|phcBYMP~Km1Z7-iZ#i;qBD_s}r+Vbg2J4IR52ilFDQR83o6`LW!XK}=z z5X5YFLk5dl)-_AJ9Y)@UIHnE}-AN?!v|pT~ z^6Gh-+g6uZkIZ^)!&2(f11daGsG_3DD@g2%{M@je$|5Lvq`J?TJiT_J(@D|obh{O} zQuCmad!|mcCSugQ{vb^6PA4GL??n_Bj3|jxohT!xKdq_z_3M zzYZWNB^b7sdY#Sv+#*J@v5GlE+jAJ+hC06F!&CDo<`t&CsRx** z)vblE2h<_3Y0#*vdQw946%1SA__8vX`o~oB6JB1%sShBRl7&blR;@Y3 z6kd|1{{ZV{kcm8l8P2(%$NMBMhv-~+k{GWw!>5U56P;A@l~LJQ`A9!@S^0bw$l0o7 zK<7-eRs6p5Bzn2LvRhv=kj#bClNy(B= zhrpaBJ#9qKD%~x&wTACfveRLmE+e`?5&be6CVKoNN5!OQ>DTPz$xi8v_SUieVk zw>DA9Z1Ew{{{UHdwiy%5qA}C0((tXxlHbit>AX~A3o zLwro->Hex@=fruR_sk$7E`u}CH62S{Cgy)P%WG$*tZ-QYY@U>XMR>dkD)jzpd{`*e ze+mfz*&d{Js-9=_Q{LMp){ARxCm7b*p;)9~n|hF$Vyb$y^*$LtZy~{Z#5Zx!^+@iL zYEf%?MbtW7)}AeF{Wto-n&xG-nE;_YR%Zk+{8#qBlP#35ZT4u4dhCVr&BmV?yVS0H z$rhP)0Wig5X>3(z6yh0uCxLjM@|XQ=gd}+$O!5KGs-3Q+y4RQvz`tc-BaE_>Vsa1PuT7$ky zG6YdZKyKss`xzF6`90+?TI=+^v)je>avstE?JulFQHy%lawoyZ>~L1)@p8ydp}rPa z&oFl?K2-d#{HU8#xwG>DytcNB`=q#@L2gSAv=}A3hyMUsag1dlvD@IxksZin+OPcL z*ORp?M85Kdp(6%m1C*iT315ngRhyR|9E77NvW%l9Y31L@80~db)OC$WU0p+Nw$NQ! z#`ZIDPzUcCDR|4ug1nRVaMsiqk$ml+`FF`yIwj<{kuZchBE45*D`JLznXO7O+DA;xm%*@?C$>Wkk712hi zHI;?B-mH3Ez2UTh;z~&Vx5aeId{QF6>|Y4By`Hc6MXPyY&+3|8qE7HwPc_}z2-v;F z!Z8pa;wX5Ji;e>t=2>xB*gXTxjpiRTYo1usHJFW+uBE9h^jcde^sfK-yUh@9{l`gKV5BrSMnsXx8qobcucmDt`xI}s*i)7lC`tF7~2aXHq z0U=KpRgr7dbRxK?o5cLMpW)BVuQhpJOt??0T|pkDXKO5kLkx_{Wkw(IVSZ~**~8I+ z=E$`#Af?^QU0y*mTwFIZ3>Wf69S`{&m1&XVJ;jiZm`eQB<)0#XTSA{(*Da>77ARiL zKDKKlpjBf*U$oqCl$V%f_PpJbGmbQM0lhoxJw(5Qp@fL1ad^0YnIRttzEni*ozO&0pg34PP*n>5_ z?9s%L#NV}FO^Y)2W>yRvRCE5G!aTRDUi)M(9C3kFQcx;s;w^a$n2PUub z{>jNi&uUp14s24x$vSC3OsL7vXZVvLC?EPoJn~h( zhbDz0Po-*F!&?5}UB=MGZyQ8v7#>R8N4`7v{{W><-NXFkipR{C66@&(iDdSYB6l}IYwT&f6(AMn`N>397kh?+NF=Af@N4?N#XB$|!A#oY5CWDe|{qL5WMqI?-6 zD3Q3`kB2MR?5O%LnJsOsG~IgOX|}w5Sp8E*RqghEIviy)|ZW6a4EckMhk zdX?R>ywv;Z97HRW*9I#N9qDj}(T$GxVL)#MFN= zFEsC4%Qh3o7OYx3tBaV^)P0MFwhB)O{XQ#Cf6{$4pTA=LedIM3jxo=a;@GtE}>>f(8t(j}f0y_wZ*RzwQY%%|sghU*k zbvjF-#?D+UvP#lDQ2x+u$KQlRcm1g2mv`9nDfJ&NXnuOQy0X#)ItG&@kXl56nknyK zdKn&olBkY${%n|t<$EGhmp;G3m|kl-Pv#}r);!5?`VY&RIx^e{l&GDb?5i*X=uCDy zM4(vSL4-?ftLaX@X7bIyJrd4lTRW?TN4P6D?)a7e0DW?AfpP@V@1}bZ-Tf9Lb0)KU zZ62X>CnbikC~y>m)}6bPlHwOV>5aZ8elE*4kwk>#qL*YCbPo z@OB>-*vE_dszh(SI`ZF<^jlvn*+J)v=7!GTt5{qKRcuk+9f2>Ev5&G9!qFM}%+9 zmTDSiiKki1sCj5w$!T!BCAA@LMba&Iw>9D=)5^#Mx>vF@x)tLQ)n`30i^x zYJ-y)$4$T4HTcAH+<&EGmwsB*^sQq07;f89`jw)aS?zuiocw3ZmJ1JQsomPt*oz|83v5ByfD{{)b&7=Nh=+W9o4E8$y zl#wtp!4LN<-(dA3o8(Bnh@{8J+ZMmlEw$T=Z53}ky=@HgN6Pltr>rYR`yleIeij)6 zK+p__oE(ltA&z_oiBe|Tb}7iT5g;Qm~c!RApJS=l7>AD7Lwg}uyL zq&N5Sm5$aOGG%DQU~a66OME}@IL34Hq{=Zp$TBrMSZ)5H<^y}Em1Y`xhAxZ&42{mA zXfkn(hj-0{r5;5t*ENkE?#oTKhS`jkHq8sUP^~1Mp=Dx6+8i308m41)38d2Ec*4zd z7N9u#M_?lzf#dO4{ai>kfI%B45&5TGODj0#njK2ia!E9oKphe#s~7#M)0GlR%qjGfff5gl;g()qzVLN5JPGD0{MaM2GA)o=>Yi7=x=Wd$Sd)@9&5Y9|DpPJeIFloMJXuBOhsBo*Jfs?>!a2nM09oE)^Ix3K zp>t&%*4}2)Y@$hZ8=ENjqw)rxt5we>BjTn;z*;r`02H%F{{Wnf^X8EXNf5M-D9J{( zSa_m#r7@R6p6Ornl%JXx*8(_gEv5?Gq*$RPy*l%&w0w!5(@ zCoOkaxU_;Qe(k)^h;D7Ute-~e43fW?ZiUM>8ui56?S`KZ0Gz3H}+-|Ctq zb6Xt__so%P5Q5>Pwp0hRsx+NH$iiYrFllTZffn#j`N}FRdukSts`{X|0iyDIS&c zrM$*z8sd90tr1>rMFCrfD9wH!O`GBUtOkftY1OWqsy7`1J8P8ld@IXMOHWM`>XJg! z$P1zMCY9rpW&U4-4eY!-pslpY4AKjGMu~$`c_b4FH2yLW8fg_4pUqx4NVEf7-qGbt zPb=!)YSX;8XXYE*>7lhUwxohA}5#bpwv9eXD$AzG=8R=<=c3qp5&5$y^<;_m5f#W zKUH!BaSiz=j*Sj$-$d6h?jCJL;&T$W1@k4ywz!}qsw_Uabzk+c%FjQzGL3hSnvH|$ zuN;<|yxJ~@WWJo2-%w|J#*Dw&f<=3TW+Z$|{J(1iW8MDAjO9oEB_q1L(qz?^eKOBl z)%4^^V}#9HcZr1!Dd~M`-Re>CfOeN#L{A0)rWFO*X;$L#>pD+1- zd35*=t97o&BrH-5F4)U+44{rtv`o>cUk*PP+Qww{ps_c}O898rUy<6+NR~-S;{s|W zVwMuM1hf%K@^bO}7&hv8GXh-tF1qs;nR{eYQ`9vHW+4=WPRsR4d zBrlT`wtY5dW2@R(UZsRq>gJJ1ib-!xeJLw2;$%knj~|I&jxmw=DX)ts3*?Kdi6qc0B|vYwxBRR&g#EZ~z7z)BDVzDc~+UfetA6Ah1ruuj#d-n@at0a;;H9UB# zWI>Q*1W2|Ib@@kYq-qc*yb>#0W&Z$3)qNYG1d+(!0d^oPb1NgM{pTJsMet+7NdCn+ zD}VT>oNAZWml~Djwv%rs=!ouww)c}aH&B$R0f>#6fcq!n!bl$UfMgj;`Gd-BZ>37p z-`#33N*-}}Do13rI~eWNCyZCR@m#vEbNYW%NwKgW?tkK*p%3S!z1E`oXP4}*Z!KVk z2x7SSQh`MtP>Tz3Mg6v6$B)@eK#$-c%3a^-j8I-?^Y@x{@q26KSe{5@Ks60YIOLW! zf7*u8;DpL#{{StM;r?731LmE`z3GM+^{e~1?bFJdt+Pg;wawgeP0PfyeMVVXo2_KT zOaVxgN!<=K{{S_?e3tf>a;(8e1Y1d&g7h_Cs198^(5+el{P%2-d3)>r zmZ7Y#pb?fxWVL~IX`Mc;Zz`G}-5-k+E94nRZhJjTM%DiSEwoJ{*GV?5Kh;v4;ws(5Yg{8#4S-Wpc(3HgTVGE!6)2E_~qDTBn_( z(=AfZR*a+Q62?W$R_-{17-2-54~vSo+Wu^i_iTe7J>G9%G`p)iUoL7A>JdoS(kK@Q z-iN2eBtR#szMP82PJg?9weYq?o9d_2y({T=HkvN04UNPm!7PcDuBS_de^a0;iov)z z@4<4z0)L#=XSIrD8b{^_JJEe>9gpc<m?puoE+)N?MiyGalln%|;lf-;By>h!s>T`Q<<(t3*<)A8pY|+_sDBUpBsY|Q zEGM$RTiaP)3wwt@TDCIF99#jQR*3pe)E%1vf%Ex)$B-ruSpC28DR1U?Gm<jLR?5r``L;$| za^e26o}cB{U#;J0y4|&ea5F~*z4EeNKK%qrvW`rDk?@Ngks}_cZBI$_9kziQ>rM4z zs7^gQX)Q!EJt#|=UNkC#i(U@jYZEicL`CiTQ5QNNlwR5uw1-i)o6{fZ3?P;XB_*lx znIj3y;rMFb7bX7yS|n_qA$-uYeqZ^!O-oHeT{+s`U*1J~0)1gnk+5%1)cAkc;0Bq< zSle|C0^d%))ue}2)uyt!S>^O6jwtv$@oM_5D@4j1s7@}tJ}=&I$yw=44OZ-nPV;A; zwJA=ApkB?W%;nl!CxXw7LHNBP&DEQ~70GynbO;!S;G(sEC;o2h7Pin{`F=?)tK7E4vu5u-TD)eGQMG$$6JH;q*|}#)}bU(K9{84@U&hU%e%zNlNlHWjgX(+a0~G; z$Z-z#QN~%1mj3`QJkg}sYBshy_m|^sQXi|xZf9dMpzG<9fDTpbhl~yRu`nmeD*!w} z!@lz$kUucAEe6^c^(#xeFH}byI$gpUT1kZfH1y<>yMVtQNKBDICm06UzKiDHGU&JU zh))`jW0u$#3Ra_)IdkIscw@y}_hND1CTXVrcV642!o#NALw@Je(=H&J_oaC$beW_M zBsCuo7{AHm`&lR$j!Z~3x{jUsp{jY4%n%J$9UzBSM!vmEg%PL@%CfvfN9vKwi- z-BV2E3~WqldA+2o8#u2C0;_+qTqNHn6=&}?`en7f_4$kROv;L^kXyM^ zN_9Pqn!)`PwKf`cqEpriTi=%H9sv60~6qa&30C=zaEELa(GiwhbdB@6j z8h4p4A;+hV8zncj_FH-cFp*zx_h6YbPw*0l&?Ihx~+8o04%=GM)hIik`>WzU0*SO z&P(gIx`*bZ?`ta=H0WWr1vjLMS;$^H{{XuNNQSUpUbm%er?j|?%IJk``MWQq%-or& z;!lnqi(A_>{J+p`r}F|onwUMkt49kLD!oTmXID_1t8x&BQMTU|zyQ}?n{_Y)qYt@A` z3q;TnWylsYflP-OWcL45=6Hw1JX z-eA;}D-}z(R->`q5gIh~>+t=oj^~>?qK5O1rzW4E&tf4XQd^bPwCLA#iPVp+!VhoW z2KawzTMaM=qYU#ut$*p+*?J$M?3Mh%AeB{v2|+R}v9{cS5^+QP*li(=>iQfvo_}2r z%8^HVZpjQ#Lh1}{C)E{Xk%r)Wex#hgW$;~dNEVuTPs=(Ujd7~qYWMN3y`o0a*jNyf zMC^mDSbSc?;lLwj$z>`C2)xIuMLoxvt#v}aw9Nv;HN&OL85V`97+Oag62hOelbw@) z&0zp5hrLp3Uo6__+Pqrb``&qr;CPnZBbG9uR+PArd9T{|_?5(yexwSoN*dS9K1GVx zPZD`~DkUcM%(E5>zX&T=qf{PTas&?Y&vrw3`I}}U)~$4hdrdB9wXoCVD?uHjEB#_l z6%~?ViOVDa8w3(hHf3e!AIi&*D8hWvqS(XASklto$u}{)O2OnKaCo1HU=SR}$vF=s zlUnm9MRJnkG~It_E!f4dZ?7IW+AWn-L3RFv|Ed7PtuEV zG;ezyyneAkE1pdI@o(5gM)+gNaL2eOjz_M`v9>GGef%Vf@yRz+Sv z5^)R7nDjrhj{O*4dm+B^^_P|Ws!pw`J*K5|aZ3wZ7mv}D@}fy03TTU0^*`Wn$76h! zTkXw8>e}i#^$)4*cGFnsAj=`TWO-{S+$jn!?ZZjxP13~=%yu+oF~j`ZL5 zxnf`=(HuvqN}A(F(sa9nu>{-a~5&E@?!N|N?s=hvFWCrOr#S`JMA0K0C#%aR0jQVHao z*?A*f^OUe({$gs^7FJq`Z>i{Tdf*Vo!_ zm$Z3Co*^^MbrZZWRTho4IC`J)EPNrzpyW4U=DO4$lvdhud5-Gh^HY-T3TfJDkOo#= z>Uacb{{Y!H?PJ06K#}EJp)?OIdBe>{T~6EUc3xYRRA0v$$YfZH(W8LKS*G|xwSLe1 z4nibHkZv}4y+P*k#*gL8JwHIxuBM6wp)y&IQb|V4@)H|;bjxv?>eD^?B46_x%eo9^ zYm2tG)U^m%9x36D-*iF|gP7F61I2%pd1U#b>ylfg-g#ce(r-7mpwQe~BD`Ley}9Ph zH;q_At?@U*@U}80{E-5ZUil+f)GuW77QS3-8lwh;1TPde%%r4hdB^ep05(x68?f9W ziBHLRwN>Y+>X)kqpZloewNQ-Sqk4=`v$~bs@}?0vtwq+q^N+e!=A}E>>NnQ5NUB+G z(E&B;1F50=vL?x86G7VdmNX3m&0bQo(r3N1)FYDSLvX?|JctoUtF=(a$$0TUvhR`+ zu1qB*!(aTn(myaGy7LoFE~gTIqx#DMw}i+`yr4v(M2zK`i)7?Ds{a7ewZ=pyx`*e- zk!Eo9`#J@Ck=zlRS?eyI%OOs60&^6tu zyLN$OjU#eQNC(F9SFifH8i?ecDIRY$&^)K+4MR;gD+!%M-y9N30G&|rWq;l)FB*R? zK$|vM-3n*=XOJhAWHRY?dR>@aezbGSXFLUX{9O2@f6BrG11eR${JPaOOK9(`?qXd{ zD#GZ>SDz!YNWwOERbR95WtS_v-|^}O6QTL7B zBF^M=$;N%@kUbHam*$Uye%zS>01dO^B!0K2epdcj`A*?%e8F$2#c^{yYb?55BR287D5zM7 zuQln*`LGxpx(uU}pe*}T{JZkLr)%|nOF)8DLFvUTaiTH<-AanBJ+a{mNnkqfGv@+pIiB|$o!!ewWV3v=y%B`ooz%S8Eu6a9nC!x z*Y>i|OjsXMhnYVlbYX2QBHG;9vKcNl0UfL}#!pfiVgCSSTI4GI?1>|iO=;)|Tc1zV!ur;ZU0pb~z=;)AsKflMg-9}q1R*Zw{QmN7?Y^aa$6vIG9Sy8A!O0F9 zH)FFeq<`46Vet3g^fBYxn#q4QJjG=#wzV~dsj^mB*3m8thcpNbfxn;a96l6!kM}6? z3FLnCp7%_!)U}bQ>fT?DDBWIn`lZ6JCwj8%uC%5D!{_!SSqwAuPuFz`Bd`-$>CRSp zVUY86jd<09nik@+a#8zV?6KH#QRbfcW5^z4*01E3Lbe*Mm4gFIg*L`j0>5W=r90OL z7e>lf(U;HK7Qc5Y=(o}ob_;0;xhWBIRpRj;!)0tEDH{W`1Bf1PYVtO%=ABE*_R{Je zYP+`cEx2WqOPS+<73O%EJ!s2vnL=2b^80*s#vFVT^+ zZG)3ANz}$jQ%Vy`cwnTz|Izgo{n}aCPjx5Qff?K6qPT<-`HNN8F8uprJ)MSvzF)c5 zZ*A`G?_*}=HlJvUh@2QwHRs8j2tCLnz2qO5wikNGnlBES5SGHgM{8zc9Mr=Q zD4Y*|m}RjGJP>sA+>L-TrnY4V}3rJd>4@WU$c`P$vx~J{&Cw#^Oe7z1-;yimKq{U4ZvD5 z)=D^!km?WG84`LRcfPNV>3FaQpr}87EYPgukzh6>Y%E@F`Qzr#FKIqY)HK~n=h3{> zt!7O=E-c*T2ul5sc#d3tCirlK5{vw~*0m2Z`8&$`m89zxszhVd(Z1U>C}HA0a<4py zJ2GasazSZrEyS(_NQIe?UyiQSNn&u7x~-ET|R**wP1bQxJK zwCjFpa~zUML{%yi)fD?&o9ywxLPpH5%+vXA%l=!EIc(xKvlWIL5VTokl8YKpe=(-` zcvO}ds5g}C4vlH2S;q~!mc06fu&T*F*^PGVNt+s`H)h+w^U}S$ zkkN{=N`ywFe#|kB3V+#QWltQ}br-$!0u4r2wAD0dRNmVV87^hwW4M+ob#G3N6n(6f zwUN3@XqMWpp=B-gqytRW=k!-nd&%_r~(+C2wBG>ZC^_ky0IjZR_ur z9s7~XqH}%uRif$^k=`zaX{Dr`R^Gu<85xw-!}Dnn4nyJLkqA2_R-RYj@ovnu`S-IcA+J8P7v~sh&_4zmF15YMnR2v zzsSFpS_ZQok$bLO$#Z7jmB-cKExB%gyn1l094Erx4)YK{ z^^YacV} zQGIyodX=4zsHt$#s<)z4JIbSqZ$xfL*%N9krBC^QXZ;rO+B8}=gubLUvvQIm4B=(iOFdC1L8>v~yc0 zA-^V;O}1UAryEPn{O$RJr1`_n_Lo=e+6J9tY9WNMl2#O6b);(N_PDS4I4zJC5-mdS zN=q4U9_{ag%tX3rib%O4lB+M)8X!I)@$vrvD*^(ql(fwgUDqw+uwSdmDJ^klG_;N= zPN-C1!LKPJ2jVa}7lX-=-KQK*o zrb`r8B}^b&kYS0qg{qPnAC^vB>4+9BkZJyJ@})bxIk7nUAa`@m;<72PDGLQOrprz_72T8RU!VT~mfmcGQn&M6oOX7ws`^pg zuQryW;sHRfE?uz^v~fJ=%@;qH7PnI0`5Ri)tmU}fEUn>|8(}A9W{@o_h$JcZF`ZNM zN6z=w&7@pkTqcytEw3ImRC3B2E+G?yq!y}_jE#fMQqkK2EP;m8n{J+0{@8(Na4*vk4H1ukZ zO-w9M(!8omEpY@Qlb;>yz8LmF)LVBYtZ67tD61Yg^c3oH0g@N<}O1{k{i&C$>aK$sA*3zL7^1mB1~&`w@*&Y!*SL+F9w=5n0*BBDIA=Ll6hy1E*Xm2)|e1CWohojs<`J z()A_frM2a(wzpA;pb#N8QNVh#mjf0>?9O>fDv>DJb*arJ&OTj|ls=p@E4RU(jz ze&|=18n4*G3e)D9ZK1aFW#kauwf_K_>`-ZXZlCFhg2?Op$zhBIjU$CC#TofO^JI$- zl+XVF=N`W=e8c5gH4D8)*#vjd*4|d2o8WqJbw6X3Ib;RfDtlezP+Y+Fv!Iqa)U1)W z*<~VxQznA)U(0XH-FL}9nA)=0+m`aSrkW(3FkG#FLw6}YSq!GgsnI1#XC>6jIm(8AHwEqB=wXfM; zLkr1hW}Y~LN)*Ry3kdmuXurO9SKs2|oN*-)XS#O3B3xmhp7w>J=3#7UAw zd7IKTrr*2a$l#1ta<4am`Tqd(`_4XlxNSDjwwsQ9oN?mnq+ZWR z{F3somh|s7SnAi>l3ZNg8>s9oB8c#Nc-5n8xf$5;iTFwIk@mmfa1m(+g>!uY3q$k-}%x8W99t{DU(M)Px?*CK9gN-#)%)qk*klj z@%%X6^p0T}`8%OoPpl@Re{e2!9U8*k$zwIFa!8!!eT@$E&%(=~4| zX?AU@PGUB?mBKd&Y|YgnkJMs5HfE821j0oNTeD9+{N=Xt-L9QsC9UM?sl>9|i^vNG zd-$VRzB-C-l~&<~I|d~0$%^X9r0IGTI#-wsVEWdYe0PwN8Ym;B%(AMUbYghM#~6Z- zwH^5dd!twTzWOVTtwVXUpLp?LTR?dFXKNY{+5Ef@W17X^EeBu`Jr`ee2! zJngC8v@0!)5J0G}b1k-+A`+&o$$l&9-kbGu`%;`54lDk}d4H9Me&$;s8}bj&h*ja$(aJ-@B}>;s$R3q3w%mL% zGCjp04)qED03g3G;k<(JE=}B&p(}hu$}3(W+A+2RBivS_-p9Ph`B&zBEyeGdCXx#| z9Kf>8d>fZN_?B4Rh&12f!^M3H)JI>($&E|q8+$!IJtsg*k#QWd`nT}UDvw2$ixMx` z3CI>_WLJKFWpI)j`m!G>=pUAPY&KWkYq_6MxVfp9PlJLgIW!#PSp%M3Yw+O_M;|~f z>3WCef8`FBr9vVHx+I?c(zBw^G6@_e;+orzcPMZ`A*Pzu8)0uBM|BKl0$C@a^02T zh*OCEV~+r3VDb+x(ky)G`Gc$6wdbp+d2?5tXP)IP46!fOlY~f~nsZ`_`@gijzSI0! z10Xpvi0^xDi>7{G`9n@fJhue@0A1t+vbtTw^AIS-pV5|`KFX@DB#vp?**}-tTh`!t z#BxVy3oLE*$wPBdP&i3%6L0T`kw1XXW+QXv&oF&vdpTr#Nn&?a2IU{@xnH#1^w&BbI?6KUlg2JA`tij@@q09Oyg?nOt-?O`98ADGvE zX1kNgURg_cwAQzIHH(^viWtdhzBCKUIJocWukSKvZcTCDen2FR=8r9Zf{u?02{h|z zObe%@NV82Ejz-~$C4MJwvbcmBzK<-D#4Xa4AG(d2Ng()CB7V&nu`Fr(IMXXwm$vND zi=>cS60yt!?D6teU}(VgtMTQ6*LGRtEAJu2EY^DNjW(@q$)&U+<)KvvYIPjf|7Zw%#3~^U$*Oqgf9`UPhix4 zFEl+y*&>?Ueu|DZH+ox^^=6QgYLYF$Nb9%5On6a4xrtc*QTaVBrHcE?FDpsRql=*l zMX$nt-l;(#cfdkL{y(u12joYSY&n}fTH@Y2)Q$`IjMl`gE_ph0C|GWaDx7&PG+Qh# z{L}oe@@==}g~gtR@x>;ZP36C-J4i|Wr5xXGe%}r}CYX{rydM7m$u^o#mUPcEOQ@yi z=>$LSJ}?oYkZb{C>WKjTvBfb9d!(Ubzv3ndW>mDYNTNO>GI-P=;@dd;JfHcv;OEH% z(rlWX8fsqYus7(*E~8a@h}kDHAp1a2)jdyV#y0DJ_WoQ=Lr=N5eL>gi@`J%b zO3WIl%H!c=95+_`U*zHCy{CxxApD1Gpj`Q~!qdzJqta!#;dK0kdxac@D7?PW$kQu* zX$Sn{&*c=!6zQcb(UHkmTwD;q^ywxvlw^PNkAIZA@zE9eo%v65Px&}8rB#>m3-YMi zwXf(X#YH)+v+^F{jD+Jzcpv6p{NsO_^ciN8e^*hyb%ffLD(a$JVF$Kkyim zmzYoH8;i^MWY#1Jc9VM3UwT2L1yoTCL6Hj8DgMh4SXFXPG~YezS1mM0QJIpwpo$1c z_>@zh803#|J05G2vDJx+6q*6$;+H<%>kw_d}$d{01`&>DH!C)mZ ziv4c$$@+{zV73}yh!7{Yf@uuQ6cDfLT*wpX$Als#NootAjXtLX>Ncrp(Oa-*q#F?% zasa4QcCQQu!)1<-L;Sk)_mgxj2FphCSCwJCjzcWb>I!3dOl-^vWdNOu75ho>FZ(P& z>R29caPr5I{{SO=)1#e3O49A-wrUA}DV3u=XnsG0{IXmr1u&2D3-YF9N$m8nj2n{6 z70t%p;QEKdB1Y_jKJ)TN^4jlDwY0d>72~vw#c%uBgDRFS_Jo`KNA|I$dEc1-0Ou8K z+fh1)m9<9F=!cD@v3l#siftn}Wv}|Lged^93H+VsFD>~}e=K>cMdPANc#_Aihcm6I zp+hgH6RY}k--~ejO@I={LwjMD9$@mUA6~UOELxnPdRCgOlH5e>;84o(`m8G5c;PHS zDTaw_nAZ@Ow=@f zyhEgLtAYI7F-5bna!4peq`HukXrdWR=FB{Rv)_8?&e^ND2(t_Ltpo4UPt_#l^%>e?4w5Vf0cZdq3RxJ zy3|CvV7M2y(_D(X9$56K@qZpPJ33oaZ%ibO+u4LeC)DZ zddVTRkt-Xj?n_tUKM)oEY#kHHKGZbr3OzGT`nBR2q_+Cbqa<}?^`(AGZ$N0R8aMnd z3Q}2r<|LZtgL|f%VvlKgr^{hsYzH!s6jgKo02v#fU-EKHM(m?We=hk;^7?yiDaN7a zZ9>EerHu3XwY1VAi0NP5^7XrYr)&dl%1OP0GLOw;^6Sa=epAw78ji0FKCSHBhY04m zZIt)s?#F<{d901{NB&g)O@+3))I8ZR)b1{&nbz4@`Z4`we|k#Sk2A=R@^Ef>vH%WG zQoQo6o&FWL^7X7s1&Ovc@JC9jjwC6kwje3p@}H1({{S#~PtMxsmwA@ExB}K&!fKHu zMy)dff8S>$7|D|BQ`+j0THpD7UVA-N29@iK~Nc8qkSll5;ewKgvki21u|0it884=<4TJk~uC+FFu)M~5LXo%tUv#8-DV z6W(dI$M?b^3I}q3W+q%9k;taRxrEYR`N!TiLh5Zs?rVfpcu`PtKt&1_6su70gk+a` z3`cVb{LK8m(0rIHu|7;rf6PrcNmSG{ zODKih%<-ow-s95>!5fk_LG@Srw#3MuXyIeyQuB_zZTdFeNBthsG?9j2s+6E$%zh>d z%nXkaDd7R5rr6p%534Mf?-t)vQsHD;^o~WL*kPgGlP>49eqa7|c`HuQex+rgwVamc zl^)M+0AwWbty)3%8sRYveMs#){&EJ# z>Ql5jA-*=s&n*B2VnJ4REkRF~4iLy01j|nR@X{}3wDdGJQFTI+JF0{vwGg*XWs_n4 zTz}1jhAgg1Uzy*XK3>zb*lhf{99LSs%wvqPvbcep?IWl)503~O!r45S28a1S`HSZW zp7&On?PF(I64vHQhYz`E$08GKY_7=3eXaMRoQk){%a8du ziBYhT%XEiS{GapAn$b?0Eyc^cfmAcCeM8cmX_MkCNMrY&OZ>&3Rys}2n{sd7vKv+c zwPDwgJbuslSjt58Okx!-{IM66O!ppS(;g|wjU&??hJ;{b+rEgoPqM5iK540ZJ^xgar!6f zQ80)CD$7*>_Hl$jcd3zi-jn&y^$ki(+ep$TW5y|31!nlSZa{5_i0@M)+@D{6&O&Kg zj++gw#EiO{Tr7`pkeJbwR458MH^q|?^I&9ql{9b9KQ7qYB3#|C)}e|>;%A0O3+gzK z88$q&?|{S2c#m?woBseiG~1sh-2G6=^^HXRP4!U|Brz6B{0e?9TzB|!<<)HWG0!0W zPT%TYUVEFpMCsD%$jm=;SNgcG?RMsOVf$HFmismuOyvInoO_KdC3yAuB`T!F7>Lum zar$uap7d;n(7)#ywR@G0$vV1ZCmb=qqu^k8P zW5N|he?D|5t_%h#t|LYTgmBuFW$vKlxB}T>x0=VPsXP{pH2(l7d8+0@#^|E@Ptrme zc2rXPt{bEn+AB!>xVF@^lMVj>o9wNPxvi{9!a&VWhvF1FQwJGk!Wk!*zvmnO07+?! zG=64N0(^Q7u)6AT$5{~o3vj;3iO0aBvNe)FE zBdad+ALW1LhP!KYP0PWlqH%`#=axVlsU;7?_OO{>Gynq-@_*)*v-wjs)`8|rdyPuT z+n${=5%DihN?ebC-~~0@^%ea6v0WxDMeQP3W)Zw_o0$D>G7_M1C+%_=X&h9NT>k*h zQ|S?03ue2vPpa5hKxPJw6Zl#!oo$Nv$p|rj3AQiT586 zHU9u7Y>w-)cc=dV&M|qp?1VQOg_XNVq&$CDFHP&zFvGfRDlh!vP5%JYrFr#~Yt=xu zk;NHE#VcNQB=7Bwlrf!O{&DZ~Tg#Sz?jGguB6@nUT02M6#Y=DZ;Swk@2)`r#bosmT z<4Tu7^A?kFJgF}$W}9N5)VSnN#lK2nu*8GW=ssNk0Gy-Hb$gRaGpr-uYGeq;iEiY_YU(qSa!|?k=AG1Jk zu;O^<<`e^4;dTPm;XZt6l28Vz<*xhOw#0%9onJDDc5Ts3L(q zR#KyXiKFD%5N#YM;r_{r>0gpQeERUUF?u>7z7uMnq;6VQy9maz7}BbqqWG8P@Z-hM zFAnyz^B2h$GU|60S`29;>9M@mH}QrLY4EDlMxL4f0D4>PWVs`sxs?7(`KH@X@?Dg7 zw#}mGa74xRJx$Ww+}ymC{nsP$p<30+!yVL`DU?&_x0kmu`CH0H`bpT#`nALf9g{om zS!I*sasL1q<7^fO^uMZ;e(&orKl#XSIBMEQk!^gfeI=pP^+qjrmWo7CTgE{FLmI1d z()3pLsJ(Yx|u}DAqfRt7|Kf33XhQCOk)I!}@>mYsT37(0r7%T?XY*4>u)Xu%kD^6*(ZOdKxx1b-QxeJ) zzr?#JMUTH8IF*efe4FI^8xPCPN6q{i-DkR6n-ctZq!uBX4_lKBrkPb_R6i7)Fm6jO zL6+OWrRZK>&|l2KX4bXalW{G{1&7vK;)XT=7G*-gc>e&Cl8)lb6WkuXgZkjpZ+*^AKQ%a#H` zNEDJ7VAmqlwHwQMH630^ezIq?VHK^kaYjsm`3>bjoVYLA{%lDI-{7~(9(vcjkEy-a zmy8z>>WF0eq?MhPG-ptezOI}K50j)h-Rg5qczwfF?HqH_NLWyc~+yOIP_>2#e7 zO-aOW4cUw{29fO<)`Gvg5nLLvKG+10P|AW&HSe!&7?$C!<5Izv2Zz+F1v{d!dJ(t! z-|FPd_St~P8$wQQ?jM@o%o5mgh}_B*fbJ8MZhzIt+b$66c_g&BZ$@_uaT!S_ir_>E zkQx_dC*W4y_x}J}j!GmkFSmr}1q{okkiRprH$w=d)wrgCw7JSo+5(o6_dowrX-*1}C9WAzP+~!(H=4dN!MJeQBa; zOK#H}gA|sw?C$D@HFvMCC_d)~L@JqPk<$@cDTuIx2EL4Zjmn(on< z9wMY9vL_X;ARp@_?c^Cr*FPFELI~eH-NWvB-o5yxrl?U2ihxu|8d%xX(#G}N4>;C8Ut-puz_QPKN z9jR*iy_+OSb2a3*(k+~Rr`cAKn1o_}$ZVA_5M#b?{LcKm^7MC7`EOOZ)ph%RDQH?z za{+fkLo=Fkjel>8{j5AAnMb+eS2w?1x*FG*ZeLQ=?g?Z@X+8j?&@kcYlwv;0Kg0W2 znDsj-?g@A4dyDxcxRzOByN8F>qDGKLs;{}-iTgjxkpkIn5l~tAhg1^kP}^MUi(>60 z$`W~?hB+9}HBThou0AjLY#6ex_H-i1FZ$s7%J)&{yo}araUW?n}$bd^O zA=QrEz|maDC2m9-7v6{d3w^MYNE@dfU-Fdq+Lf)X^pNTB%tX&|bl#9?NgJ;+q0^7W z@Z?OkOVIqS$6Sii&mrWz+@*lzk8R@N+K zu=KpUs9RnwxQJTV*@)+ulwf`yGe=bbZokWtFp%l95jfp-L& z6p`Qf`K6v}I{o~Xx0ZI(v&#zoVEtE7qPRR-s{#GrO7Sc9ak2RS0HjoYKO9MA$=0lN z4MuH7K?SGPoo)(8sz%C`H7F-Ss^0k^2jWa6e~7%B$~umf7m*g-r4U{`(*VtL1V@X2 zKEqr<{{T-0T&a-;`6YVbw3*<%i(8P!c{GuWxGJ0t2d2MSbIXrR2?xnV>~vj5+}_E3 zFd>MJX&%^3N_SSdEkJwZZ=!9B@QQn+x3<2VGXqw+b%-fqd3;66DmKQf*(Ez8w0#td z!}ZI^5+os5$8iBH-?P?41wWXpVMVhW>uI%5E6Jx#C6iz2a<$%@6}0fVl>q(hVMMYq zcIv9D`#3m~1KT{KscBwj(Gyv)S!^v(tTLm0O#;ahsB)u=npBO?^JByq@W`h&)~)r5 zrmJ~YB*w8^LQtQ2MNA@b{BZuXcyjLl0CoD9{nTj=sLVA9T2E0-Wa?=b#Ldvh=_-+5 z_5LiE6h9n4@ksFJ-Tv$KA{R!xy(>4@?$07a@Vu0+{vMU7LtG%h_5T2K`q-FEbpHT! zhSq$SVXx@-dUm?A&gv^+cN$#WTt@4%{{Y9dM5puptRxPEeT<=FpXq$xtLWGI4y1Jb ze%^a-CbrW&O&ge%$PTf}s>C@1k1jlNH%yE{-34`M)=pxTZXmd1=WeYMfXOGsr*qKz zWKFUHBp_k4ib(Dxxn>h6q$;5ZXYLxTqzZp1Yy_lLHwU8&nLRTxs4%36JvLG|n-DmJx)xk2dD7y@%1E9J(u>dlv<3MWs;s#=k*(F${{VkkTm?1Y8HxB0asL1VhR|aAYx0Nl-%9g! ziM7?Hx6`$_NMA-t5j|@6h%<6O>g4!)k#)`LUs^^gLkh61Yt&$8YP^YB5nKwA`Gd;d zU-J!|wtAhUcM-~^S&EKIJXPsYN@A}Q^LPB>rkwCK$CdAz-f>o2dy-re)`5VnevFB` zPR|bWPm{kfbUCh$wP$@CDtO5`Sqv1MKEy%;n^Jt+3=C|&GtB->lTuA4Juc4T{^H`zE-#kaAu21(EAYBRh)4S@ zo$YOL0_ykte@U$a@;g|NytkSzrlFV9jTRUdhr16_c+E#+nC3^h$e{E;E&fN&_D^K# zscFv|icZfO2~Z9pDHQMV(D(RpjjqhoLi~pE?woApihI~4wxcMDZ%(W?KCc@3mC1p& z>`T;yEke72N)EmmHGlur^-cv#^_?hc8db)h71Y{)u0P(ZM)c-Sh%qSC*tdLD3848q z%eo^xwia=%+`G?s${KkOjFO*?&-%@RlWEbW6g=P0Hd@@b&vhoPcr?K(M`@+$bd8;e z_=UuRt-`(xoN{-yf6`0{-@S<6YEbD991+I9rKM;3zJaGTE!~evFP%Uw{#ldZ{{SZm z9e?R01NitCi>4cPk%PsF4$=*`EwT`Q<>(E0B zHsPVOm(*!NG_NT=G*9L9LXHdFvP zJ%`OcMU%|mmvVVW%QwQ^v_xBZt<;2ydw{XO2?~N4ekNudf4#xTG8?16EPRdTxS)sp zZ)syY*)vUJFlLrdQbr|<2LTs=piVe1i7}50)&XD_?2vGTyx;TkJKN98+si9SB!=d9 zM2%wUApnw&e~|It9!M{hE}+z}{JE%VnvIlxwXMVv`pFnc5fy+u3XOpuwT+8M4Q%z_ zH(y0<1OmgPLXY}LEESc=S6bqOc0$Bji< zk$Ha3H(N5{y~;O7@{QiLt%!W5ERgZ%>8!5k@x|z(Jkpg0f__GUMg!!Fdl#3#BD6bu zOB*|@sdX_NezV#$dQd#z@+fH!FHXN_ljOKfF%lPS)-5|imeKUFVQZj681<1XSBlQa zC>CPSD)I4bOe^pbGJZWs5#$?0)gpa59X|Tf1xXBYO9XzPQ~{aNJAe4w6JLsCBzk|o zTYu$?7rc_@%`Bjem~yj%OE!QHaBZ2t93X}y%fIhexAM)Ynk&1j8#|jNa)L)o5;&TC z0GJoyulZOEhj-)sGDjElmwAi)6?K1Wpz1dEseJIYz>e>RywiP}|v{iJ@K8k_&K+YR!aW?@^bz&rE@ zib!1~w~opv?X65j0Y03JQ<+Bif7s(GQU#uOx<`L)XQ#SEWRq1$qubT2VhIVW6yqa? z-y%0VmS7MzU;ZK1Wn{Se#mJT-8s27VkfVt7(fEe#N`0KWVm4^u9!b8J=K(N{_5D)z z;>LMOn<(y#KqwTfqk-DJ)v~!q;Mo}vmFpIk)9a34ySDn1xb$NaOCXLiHU-!MSarn2 zjg!aTnrS{<)ok@oQ&@Q|bTvV9HlVBOBS7F45f>a9PA{2s1baQaHui!SsryZ^ZbKUjXTR-Vta(33xhDD@ zK3gz^NA*Z;Y@e6;U`UVu020Cou1ascWY^kVrkO2;j)iq@r;1&=*+IfkqLgG(5vyMe zM1WExdZjSw9#4+VWz;;Zk}Al+*GjkCH&2Cm8hhac9`CgkF7m5y5 zO+2&tllhZjss4|*xOjfGS$zdqt<;6snmX_tl_`V7zH8xEC!=aUY4bj#`FpR!tSNzI zwwapYq=>hui^M`z6fei@aWV&!AqhvDAo7ppZjE!~eKHHVE#fmmlS>Z>-mL8^SdE?;8-K3{+QQb6%jtm5+=7$;P1uM6y$%Kd>;?@U-3)v{{VCU01~SY<<5;g<6K?n zG2FySGDz?PaUzjL219V)v$xsE*ONQ*`;ceJKbQJ{`XKV%(L*OTh|)pG3W5Ne;ietD z(SGmtET7BTW`koaQ(JjdcmmyH7L3;fe zWJvD(f2M0b^Z5S&HHT`ym>-%DXrlb;5fq+JR#K`&zM`6vUGuh73e zJn?kN40nPjSV?ffM=1d6zq@nWz99K5g>_J0&kxMFBvg-Bwg8gM5jF&FdZ5Wz@?rEN8~rxp zjCWC7D49JlY8Wj=O8&-C&A9F4`Y%b*W@PauN@umrE zn4-{t%^u_O69%j**SFt^n# zmPhbpQ}(hzgb+|tc`M2f3rqeVw6}<{jR(~9^1P~k0C*kt?~>vj-;eancxB#?{{R7b zD_7IMM9JlAduN#n8{~%8DS;aoLlW%6{E?9)7JIxW&)<+faPqwJ-|5xVH2(lrkURj% za;w>y6*`0bm~N0ojn>Ei0678Yy*Eg;(4lWf>QVX)Fa+FG0;0U@$Bj4sU$c`E0CHHj01J2FXpBn5O*ZvJ?l^B{{ZIWM;V6ZS7?C}0TQ<@ z`s}~U%N{Y@z7f7|{{W$h{MLeD9Jl-`0i(jCtw8Yu9x>d2e!E>Boe_qj?Swh1O!v6tpx!!@5du5=*}SZ zM`@aenCv9Az0)o(Ew2a&l0_+JETi^9d`dC22#28gNB(j{&-xUX34I{e7vWwPjQo?1 z!~zKVaG7_gjdFU=mVf6U^=)+8`f_O&Pdwrlwz+x4qhZFJO$}?3BdBA>UQEZtamiUcwqsrF+RA%?S*SXbrb&0A#~y*E z&o?W%!v&gaVzp@|E%B-C!G0_k+@yE%VqR&~wY?L{TGht8Zxr%*mfqV>(CvkNRJ68c z<14K>F7A!Q{@dZZKozqj(fqfl=^v8U`rnw3EAga@OFMVjVYZ2AiaYX6|XKhOS7C%KefqC{;#%hR?gKzWw$QLxcxpGvb^yX62| z+q3Wt#DFT@h8s;=T5YzaE{kfq+D9g$VhwPr0gYrMaK6H{!Oay8nzovCAEhZqk3v>q~DhYMLGW*p^%C%@!R#&IJU<9iw=rbHsh5 zNxlXBroqfw@bpXJ)S=S!k1=Xiidyf?%wh8M3a8ggcnPbOBj8Q8<@~sO*zd{YtEyf* z%WG#O?ZT9$$9hQ6n@VxEVxf5Rd1j?hjF0!7fHD~?bAP*?!6PJIf7P5V^m*C z5Ya1rgelAXtcRL>lS_}y{{Su9T&%BtvBu-~L6+%3_x|r1KZ1i@%k;m^&n)X#V@kQy zR@xp#Lzt8W?ts_@!9V5$Evdv{`q3*p3 zEK*6w;3Auu7QYog;!B5+V|+|2^dIIvvLMv&;=1~~qS~$9!7(qSpnMGU2aP;&;$&a| zZ5PvXTCEXKE_Da%BFZok;@9yHCPG**CV=Z0X_A! z7Z%cmf?)&mX!!9j$M#yg<%I3Y6~8i`c|$|j{Ksh>rl+aBrk-kA7u?_N0feTXer&mWZ~SB|dYRWw((c^QilUHI1zhI`nYknZ~% zPds@7UqnBdZsJCu9NCb4C6rSm;hy$hEPI(YpRM^GTPC)*)#I8Xc`<2$Zi9N)9ul7t z3W*klC_a{~!II;N>Y@a6P%+DGp~rha)~@xnk?kK(x`o;VwxKFR5I5VWEP$9( z1IYt#rumlY%GwBQrYj7*pkTYJ7OvZP;NlGUOElAbiTQ)++-py#TS;~46)8N5mlaLR zMuYa7?BNHi8m*BwKbBs8y;$`xsx#^U!69(T#6u*c2*-Y5>Ro?jIAUdK;ph;bn%6qR zYnI+u`pY{fqxFkZB9LxnG~#%HQkd?Djo(aY-b3<)8a0$Rwvfkj91)2spwK& zsz3%cl!c)G0A+%YdT4hqUnlt#v3Ik#=6=+i_dicB43a1>Uo819AOvy5BOCt!dV2o= z!C<1A3>*G(3(7X0WAZeY7HpDU>3_b3K?RI`8CT{hiC4^8MzyJG7WTSS^UDNwJl-db z(N4mgeky(0IG&Ai6}wNS-Q4NPGEXDJ871R)4MVtBWCZs3d164M*}cL^1X3j6Lb55L zq~TbBU5Pw*%EW+eF|=)-i5&7fH1Zf@9~9ylm~MZ`75nl$Nubr1n%qCTDk(%q1$Y-G7Mxpo|~k3<5Ba7)b(9b?$X8WO}wEaFzpQdwvtH? z+l((7WW{$il1Ea?Ej4H_u0_VD=0}D*1*Mr!MUO86R5u#peaVUUvET8Qrya#4)*fpS zDJC#aA62(q)eipoS^RQrA0PHe=zRHh*Uvxcd1Hze3h}3`zy|CXMYczD&}F(e<^*3_ zkJp;w;u$$210BoqYHhKM3~$W@c`;u%epGo+%~8pBV85a7AXymji_(r(KM*pritbNb zk==+i@%Mwx{z;bWNw`CCrRggQlUs32q6UVOE4rP}h*1zTWH25L9vUe(E^jn)o z96#EqRsE4nk%-SNhLs_tEH~31VRymU**6>GmN;Nsrgm;#pWn=YkMCuYF?3P z65VZNwv^mU*?uJ)MLt-W?2#ScPb88U+pkK~=*64=*Yz~cV~OMnTY{G2I+_lctL4wk zAI^PCSGt2tlgf8C*H?0wwAFk0Au@vDL3krroboi|SN{NIlM?_~J2grqox)LLp?R{_ z?(MJRzSDFoNtwiRIsX7jxsZBr!y5CDsNd~+(k>qqlg%C&1CmXzYEP$WgF)l+<`~HyTr4`KwWxQ%}@lTTLTU)UE{6 zELOy?!)*$3enfm#G5kyY<9)0q$=`54%}@XoHb3c;uPpv?SZY33y_?LJE#@24xiZ@6 zHt-m@#}oeTos@9m)DQ8<+;KEc{*+lBXkAlLU(6rO&nUWSi>A6xzochr8fR%N`P}_f z4l0~tR34)*?asf+f=8fd9rsQD0Ou^VjY8MU8eW-h?H#S`$Lj!b_`(XRn(v6@j<1>Z zON+t_jz_L3h^hLd?DQV|ChD!&P4!Oh#Rw6n1?NU=z^iTlfjV0o2}t3*F(rTbq78s35l??m}>5oe)TNdiW& zTD{h*YZt^rO(U4BM*D?tQk^lSx6%Gg(qqze3tJ<{>q>%4#s_w|ljD_-`tlZRKxbi) z>{gZE#|Ty{=LQXZpj%1mv=d*asv~uceg$Vve79xw6@CT#So@G!4z+r^Zk2a@?a3|T zd4J$kntm7(c|LUf^YYXG0EZy+&CJp+zdSH1T1J85QyY4W->$IGq)sRpCx4R>Ds z4`Hdr^}Rtf ztUwXZB*-~gEJ+%O#afO)Zokj=a&##M()~KZYcD#!v|0z2D<9IS96=s9n~N-KPH`l@ zp9QZ5_^<)J5S!a##*U{n`o-1#)%(Wx(g`ktMGS zx0obeao&HPEfq%+a1FlB5y6 z7@ANMB63=O)&^F4nf{8F9$d4(wAM9Q?JadnF*F){FxyD?97pa?INsxkrvCsDR>Q(U z?hJUg<+~X2pO8HN0Oqo9^jk^pV~O}R!I2{h)!eH{%69(%BLuRR!2tRP$bXRDSMrR| zYC7kutKO7aMd&e#8BXP>jOF-|O14%-^GG$xo@;BVO=#Aa7l`&#icK16_avCuY_*DR zN_<-_wzhj)%XLL+ngJx`Wd8tLgJAJ5U_Rg2o(}&2 zxsU1zVQDi($)Ef8(g|e;hyYK6mzs^#lj=`cW3qzkX$#96C@30E zVK|2cxePv|&;9S}W5POb^LY21e>XJ?nXGMmu!h$1=@ec`A+w!o%0F?=NKkwP(WK|c zB49cGhCq~`MDlixVRa?vnIyHpx|nl&53G7#lQ}K%HM&n5f2x?6OS|#%UNK*f_@uj6 z)&`k)v5R=*3<`uYV__V4>#Kg!04{7IJ;{vwCEx4)X^-_f>Vy#D~%F|pV5FOJ4!TZ-yFvm#8Ai5<%F{{V); z$3HbOf!}15>w4sOiES0t#k(;^Aj>!eno*bvwy=mU)%8{{UAd;#l2@$476+*s|YM)^(jm-s4b(q0#PSNahl(@>}o^#4#-) zcQKhcQ`BFJB4#>%hC&6KS!&upl64<3T1^^j7pW%?s757@G>t$la!Y#RzYtQS{?FRT z?R&4e9r-2saeL=YdA!H1#vjYpvr8?ltw~0fN90jy#)_m4SR{D19GS#dz4XoBmoyue z=PiZ2(sy@>N$~D4a1Q2NMG+R0rlJH}NR>v)6%+~&qaFd=yhTo36H1xN%V`VHAGC^g zr8|!Uj{xpoBBY*L^6V^}H2ZXA*?7deQ|QOTk8<%9mmXH~^vqgaHrhtoF5e~j_TIvO`N%7Y5-DCdB@*1MXzoMCwdF)t zYI5WIILer*`OD7t_pE2W(65v4qh&kEtZpT^O*ZN@zKrs>MlCaqM){(deX)Lk`gl`kVRZSb2;TT>YBG3LtN;9rSNWN;PP7&O>lU0UGWI$SG z`oe}i)mX$&HSbiz;uFyl@LiPc&~b zy}jj|v@&V&jnSoLqbjb$oOW_@@vj%;uDKpvRa-#P^;;i2*zld=i&HXvT6myI1gR;h z3b!i){{XY${;K4KF+NXe{{RmDjfc?DUguT1xpNKeskDm40+slIlj<`osAc~ES1X`8 z{yuEUv~};2e8pms{)*FOxmJjJvBf5utg?4NCbdpsNi=_lm-6I>G5CuUBh&A7oIYgJ zbn$0(qbzb!g(ij6%Bq0Hq(Tj}g7={WQPgQFq7lt%k0W33UGeL8qUC#TS(-b zY_o7jG_Tp{yEoI2wqcO@Gt4?(m8iCv=4~`hU|Z0W)aM+K1}B>pkBdk-9!!q^0B7vs zjWx(UA4JeUDYb1@O+QYS+WnDQMU(0`O1uKqm=k!rD*phJ%Pase;wXHl=|+!Zdh$pc{n!#Kw_u-XKjK)PAHiiFBJ?Xy$xRYFIPa}~p=$#UXwlkUhocGu z#NDH*_Tzv^ek99;{sLEj`E#XdHxgRSsKl;5BC%;&l*$4B04_V12EXfIIcxrslJI^i zEYHar$Cq>qNi2~rXO`k#Pc62aeG*rQ6e}s1*KWMBCSdhV5z#T!W%51#qA%|BD~p@^ zVx~Dwl;MFJf*XhjB1BmUNOb#|{8vnDTI+-H5j38kAC8=PapTvQwoMQJ(Dg0EzLXM6 z$Dai)#CM?Sh*!hEo4=TCt@(ycLr$@69pSi1U7ds6Jn(!U0|G+F7#$Pg=Gi8&3Lbwy zY940OB3(}L=eDpwsxD_Szt<)|-u~`|l0OgS#1eu62KBFP?c$aTjyip`rpC`%hm3H^ zac}{hs-bay_}2S(>WTaplwY zvOsq+Bz0xFm!EWKY$5W#fuV@6?LX3O+@D4$(MQ^rrm`>xmj3{?fB>YPtG_IK{{Uuu z(GA3~b6q!1nKX?q)EOMjJjf*HBXyEaJgVPiF*R(3*Lhj_<)~lzkI3=r*ONug&i;#H zpmKp^P@)%gGkp(lch+AoJ z-QL(O&Ajp4t%WEY${A3|AHRHlO&fnlSv_p(kd*1-XTdO z-0ksvIQgRQW>4jhG|vZ;Z~VVw>Om%_c8LNre)Hesb0$rwvk64 z#E{#mDugj0sB`wQ;uNAbUq=32>6dY7l3(hUQd(;_@&~>XNzI*+0*3g06kp{F^<3WUIW*ls`YL=D`84R5P?Mrl8H zs0LN5d>XX-pKb7%%efa3)Fu;ZeqKqDEiYx8)TKY%tg32ursVg*!y(Zkaqm>Mx`5p! zx~<4rC|-Zkg~EbqQVGcK+{hUBvCqxjZ&9~{PSEr{Ovk8dlJJ>*MUj>c2b0uLjwg?N zJB6@bKVzipdX1i=rrN`CdiR=#)%87piIM|v>nn0aCchMjk~v@4T#Tn)_F^RNIVLy0 zNxIN1jlP>APjw9Q1-=nF$YSCMYB$d|k z8QK_waz`uy0YyH~TnV*nt82T98!NXKh4>VXIM4^8{@lL_D@d}FR*ki# zQ>DQR&v_zMVo0gQSkNm6^^AXH{?;+(vJ@TV-6HePpO~iFC3O1azO3#m#9Q@tH9V-} zj!I{Jn8a-Q=S$W+mF1fYeHzyO-r6fT_z1axM-jO{c1k$SAmxvGul%fkBZ-QgX4Eq6 zLm=yt@a5c(8a?fQ%Fq12jy`{-!gt@>z4Wl=d)^)NLt#e(=>E7jns;7^T%;m3=mDHC{gye3170H~pD~#b=|#{zVl5aUs!6f z^n{#&t5@QqeXNm4vq^rBZ5!XbF{|7)57p#W5${U!p(E_z5w)DCT0YBCk57^xO7>{= z7%pD7KodyBd_@I%^;~L#?tRMoznwMhazkZxeK6Cclat27)TjAedbT8}jc$R82a@*c zc?(>|sCc;nIdGs-K|c;C;-tgM8jqN)Cll$?NU^J{OA?g?pbQl9W3i@6F(r)T13B|u z&*{w}bqgoHy4Li8>%}9H{*MY!%UTeOHmy{0#!(}hVJkHCFUwf84?6i(wU~lK<^*7x zgqIBRFEvgff))agk+xJiqP(?hEr*z)xS6f3Eny{|SGPnv3Q$O0jZe!YV#G`aS*q&M z#%I(mHDtddi54;aT}X_b{x%%|>yhD;F*vB&eq(t!%ISS`X{Nmj0B1&GPhYYJY>u$UGMvlqIrYKn&Kq! z2xgD>mhN0<^Cq+9>$&bU*-gBYK=$%7o%kLsY2ooA?}$<@ z?BABU{g0UR-%9Px-m?fMNTg}xc0hjEq>6|Ic;%y(?IaP&=oWf(dTsr^&Goaw&mwv$ zNtKNl5UKm)RyYk6x-8Z1bxZ5Pe`jjeI-une-P}UP6t<~g8F|x}`FJ*LvVpnRJkb~L zAI+LzWgvZCJ5^_6U$V7+rzOMWfsl1CQH^eYM3yW*wdfKhe#IQfRgEh|Bu`DeDZoeXo_#R{LQ!vtq!Q_Ga+ z{n`G*2;A+-ffc(1NbOeMPcvx>A-c759rV}AqA4bv{hM^HKXixoxc>mFjqht#DIkl? z+B{ldv^J8C|y4A3hWxZxWg-t}k?-Ojt>C3))>t*UA|nQ1LvX99(2YeZW8tOaS4>67_W zPSrJQYkf>4W=mZ<&sDa57UW$1_Tu7MmXuUz$X+M@7oHmCqD*h|3(wa2m4sea(5-^# z))!3HvQ)Iw7Zfb#er4a{t|S1lwm;?F2h=cK-pK214eDFn!vJG&0|I$1JP6}}QkGAn z`D*T68cB5RPt}&*7@E$-Rb_9i86}(1U5Ne6T&AACW#8k;i4;n$cjY`&-RioXqfBk& zo-an@QIWVoX#|a1g3VFEnSZ-w{j7;Qrk;!W$K=m0S@}NST=MPGNaEtw!pY+_FA}VZ z$qO&{jO{6RI-G5KVIuiDQk4D>J)-DJ;*;qF>pI zh7q#@ZRy{XHvVYVbiE@{DQ%``mdGQugg{NxqHH-x-wy`=04D%F%z!;!!nG8jsI3pS zES1yPd^n|1*(qK-_~I3U!#(b$`JFeXDH>*nW+Rp$NLIPJA;)?i5h&~Y_{j7?2){jf ztm!r>YiSEzYWk7-y@j-5q`L|hYIH;&6E+@Op!Ys}{Lj*K%L}bLOVj3w?lh?GuQkan zWhPR~5^*;KZmlfSNSprvy5-1$NVK!_2h7cHpy|F^(vo>>G|PKc)@|b}M7W80e(FUv z^%cLp+a(ZclOE5iDh(fA2ha-{(!VD=5 zKDBc+cQak;ZxzZCUru(o4bHXNzYh~r@Ye~70u8LCxYC8?{;Z@uO|`2utRil_cjT+K zL1d?MhYyr!ZOQ2X<8{Gzlud7vPTr~G`#_1 z!=Gd0gNl=C_ZF7clC1u!n@}k7GeTymKgzOGr@j$0chz`WI*Mr;oN+y5kyRci5(QY@ zl^I{)^#rR%AG^y0%`ucM=>9_duGYNgsVA8{z$dk^My$6B>LIy9_CyL4a8NP^c2+R~ z?)On?I&OmwhoC*ZoJzik^v2}LaHT*-$%oK zv@C&-`z6V7s$(97p~0p{s_HtsEwo^mCiU&aPTTAxWK}rv6Va6-Y&HEST9sh5&;`sA zF}D}C?PV${19Qn;z9m-W(;>y=%ZJTdQ}U0Lq&E+7dbU4TD-4cJuwGhlJV z4UV7X4=Y!DuL}?zNDw<_+l{QL0i%YJd@_c*F2O&JtMJ2HL4W$cl4wtM; zXBt*!Xd?u%>BHmQa00io$-I^3MbhQH)2ybpiVDMYvod;yM1EqipNVRmJ`ww0>tPch z?4mX-(mzGeVZVJ2-VGY$%`IB{)VWyJ;gv`}nLpk9Ul$xq)C0dIeM9o|&36;u4KGi+ z`oA)ez#1t^002It0#9GFOg=H_v4!(xzCrRgr)rO@d4F2EzE>d40D&V=6b4Q%!=r}y zsgI0${mL;~n{&COp#TYl} z=M?_{iw^$)J+N?jt*A}^0669OVIwK}l!^fj#U&tp)WRd?wwT_2M*d!1Y1aCDmPKN< zEMj=ugr5R>O?>F~Ok4 zb8;+Z)GTaxt2b5EEMoE$#H@v4ZDIpNgXT!CbgrhDNVl zzn2=WgXTY56CvL(k^caRYELa#M_@0liMy7pkeg<>PC~p&h7nMnN5>i~#0nNKG3pWe zKUEJ1JWm$==?PD=SjF*@q#l13SsP+tj=t73zc5)e7g5PF+eXU-##tF+ayt5H05l)V z_HtY|%>9Z4hV=96-8kFMV<((+3?zG(+X|E%! zH{e3|5&DDd(1N{Fi*d+|VD;ibU&e2ra!IgIxSy>tF-Orju&d zgcBZ&Wgj%A-pk5Ckjbm*?xTJJ>f4E@V@Sp(UQBpd9j1?@#~Id2S{*o$6-<#ey-wU} z5cmH8D-j`8NvhrDes}zl)4a#1zNw*H+gUxs$kU>kWmjgQJP{I#zbqDkH;_-J`OC<9 zmnmYGPnJY@<9VZW62^8UR+Sr92$dUTMTNRon$qTYTg>-bmC8aK+sO^fG>IiE8z6QZ zXh!5V8(IkMXUtmsU@ecEZtiXFBN8M&yyis>zoR7yUr`tB(YWDI-{s2K+LRxmWz2HT_uzPyf>OG|KH0gr_-)=Sl0KOfFxKpw9< z)UV%I(;(CIjWg={OfvmR@9z|wiV-b|}b9g9C4R$=EPrDoq4b7Gx>)7 zq6-Sf-i5kAfFlTLA1%0n&Yq=L63RT5=yz?Vyo&+{yq#sXnhTiMg2oUYO2n%ywG6+q z-|$!hkc!gpCu=selTmn<8Dnp#+>rLt8u417+u{ADKeL97AXTO|SDI##F0|Lzu-v`7 zapcKF9L>SP9)cxvFUJ>IckVd0uB>ZG5W@yz&_h#KG7k+y@mjPl=lW*q{p= zr&Re&nX+Bc& z(emxqt0?s2xYapDV4PMd__&5Om{XHM$aAMJwT|1Q62(6~{K0#xdA=PBN}3~VPD!#7|^?0iBz)hbd0FCoZcUm>xyXPB~SyxZf$kU-?_GqP~ zBEMjZFP*Lfm&wUukdwvnzQF{!P|&C5US}IkleL4Lz^y40iVK9V;BX*V1-+2jue~ zwUUYRugATl*gfO?-}slGYtl`18$Gqn#oTc#$1K+}zakX>0C(|Rvbz5Os+kS0n+GmQ zRqlfopQkj7=v&Wj8bZ7zAd~wm>$7|R0LHjP`;t7;8;vvfuGY*-Jw$BO4BdLDEJs{1 z1gRkywl_1y4aBbvydjlb$s0tRPTgaRkNg%{z-rpKfY>q}FHf_!8e-3FZFA~#V>+zT zLg5tbV`Noninqf?{{Vr=d&)sQKObVPpO@sdzk^q_xL8Dr?DlHL+@m(c6*9!j)A{gM z-hfwVv}BL_j;lI6KQQEuQP(_9Jem)^`QbYG|KyYHKqYoyD;@%A%0C*U)aay zA2Ua56SQ#)O&CmVfheAvJ;4g@vNs+@RQ<2Dj7TS*%4~U;r9P0UYPPAU$zdFA$~A*t zxmpTPDCCFX%SR7?+`#d754Cl!kAD@fIQ3hrt5QIFme$?bPhKln!fXNiSt}hs+=jAG zP(Ra2Qd>KCWe*mut5sOAG2PkRMoImj^o~cT?BrxGr~4J#@gnJ^zq*J)73Q}+xhANQ zX>!L;bycQ7?bGZ?7uW4p)BMAGrG<@Q)&eOlA$>Xu5@|#GfH(2mB0e7`RsCl$3lS-MrYiXXcZA9Emm>0R79Rm4M;ww}>MD;iwr(vYmxsQ}V|w;Xs# z{%UsfK);vuDICeB*m-T^SN+>Hox~I*@f{rTZNJ#!XDHwJ!X-^ z#CD{B^Nk{}!N=j{_I}G`Zp$EP=r{LTL~#iHZ#64B1c+Z>O>DL6@p_W2O)^$H*co{S zF{@~X^UN0aNRyp007+t>SVJVNH{|ZpNWp*9$#HiQi@t%5`O`w0(*Dv^wz-9Fq^%t&f?+9G?wZM`mCHnosXyR{?{+G=L`=jzqzbf1G{EwyB8JhmpD=Q6F_Si`pu&by+Pqe{*XZ>7whxC+R zbWvZIn)+#f^N=&!y3ZB7{H&c?;!Be94b|j%3p>-|-~JaNI<`?Hht|>Y0-vuUTLR)n z-am#ahL$F)62PhG4iq873hneR6gDUa#6Ba|p7<4R%qR}^JKk}mD1xwp2liU__K#P{>W zIl^}MO~j0&<^IPW55<1ec!$gJ{%a2NHnpN!>VPJhYHlGhwalhju1gY}z7~08R$4IX zFz}A`;wQ`H{{RxlY*DYTjJAm%)-LK+*&aAjGzNuOOuRqTraY8_mt5Ukr1D2{U7`fW zV2rN?;6(~G3IkR6$`6kSk@zIXyP6BsMhG2QxPk})R=r5yi6`m6O3_4V*Hc@_88%4w zA)-lXUc@k_AkxYprxugy6b@pycrNQ2D+mQyiP+F7jC=mZONe(c;UA7943?LAd`Wk0 za=}&1PwBl#brm!Li&BT}WI-XBqV?}2etOu>@E3JUX#=u>-I`F$jo;yZ zIC#9;_zk^6^UNAHrFRwG)RRjhsH4c5Lz1BK0<2l7ze?mz{{YyKJkR6coJ*?tQ&6*w zW3-KDh=8?CHQrKor5T-n;CSHS9p7UkXR4|$r_N13O46=0*bpJR7RjeYS2g(Ac**vu z-y|r1V*|v0xBfboTk4NtaCG0>CM5*v3>KShMKW47SHJHYCF!lc|2dhV}>;m}*pC9%-at)9F z)Ab0uQa~Vz_~E5_&zp2#FCR4A{YT5Gta+mLHJPq%6O1s$z{bD7Acg+#>@UU3Bem|N zo{tLiE{$gnrF$;FstYX(Old`)oouEQ7laU2C12h*Ux~6nl6#mCI_~h<^!AP;E0Y_Q zc`e#wz)Fj^!OM1IfNqsoG;K;<5?yS^&dM292_$3j`mUgg0&DX)EtirGXlJW@4x}Jw zN*dGozFzoIN$-)gO+Qxi6e*}Vk4&^FJ^FxIo+Wi05mXj-cVtQo6t_(GO4NTs=pJZ~ zOR!(kv)#!IWNr0WPfKVW~8lG(4hzb#(rUSHC+zcJt2EvB?=nk^pED9e3a zxcYvh5I=NX{{Wi+=WNZ@A$+H8bD>C{Vb!IQ=6f3jx3Gt)OT9ojf;1p~kqn-zAK7Uz z1JtQK2UOS0USZTfLARA6x)I$&e-*fu--`Nh!X@R){HZ_TvcNuVW|;4k{JEjqUuatP zuc?)?)n%4DsO_8?gE%TwsQAIzJ>CozvS)I_L@GOq{}nCRyUr~ zaFhe~q>*@yhmH;7wWfjIo~>o4Sn2kW+E~K2_K^-T#Da>WzzkUhSmsVeLvA{+dK1?Y zs*L=Xl8ORoa3zWUXiIYskTv(UB`!XvH>O6$r3e6g&Jcna_vELRZ}jaoueFy8tY5n%dgOFP&ScqU#lMBo)5 z_1NP{x6WRC^1695TNV+<$IG|u&!=*ckztaRcvWK+HT|4;EgV$Gq)D|qi)gOmxb)IM z6gieO3sJ-tWgJKOSs{d0=l#m~gmV2Uz1QVFm2rCat)@pLbNp=Ye@)NC2qPa4`pst~ zyQB8BKO%IS?kZ5)K+Gy5zm7l$jUKp>=2S@cMLfRzi1JsL^!3yx*RFp@>HMymLeRew zynX<*sSn_|i{zPCH-qb*Wxv-v$0d%I;(annk{dgDqg6%=@S$}BVmjj@Edmr7ZiVIh zZ!5GHD>IKVTh-@ak`GFi1yR@GV8iyZgEsJ=-uctcZ)7el?qz7|8Q+r*0N1k*rw^tsr^#xSY}#OIs|b*EAX0Spbo8f+=8+E(epLi8+*%`=d=zSKhajGl07DuNd~eHj-npu;{N;|X9ITRP z_TGw;1j0!OAR1R>$e(jDX;i=Sk($=0s81qkQYypy$4D;SP{t^EaVja}Ono)ErJ~P# zi~0F;=6ElfEe0r(!Y^KOCQvsFMLE-#**PN^u`-zMc@LDd>z~XIJ>E|YiKS`RZzPxU zDFBFM99lk2vF0)ozKq8$-q~^FU0%w}SZEr=R(3GeZ6g;h0uH?^P04EHYD1DpiRPEw zep6oRk;1yxw+-9d$?8YScco9syf(mi%80-$zyAQ7Z1VNpvGuNvtZT``+x%Z_f?JfF zu4u60D%yX}E@)OaM&{GZ7uNGABb;U> zVdGL45yX-K8>_GUR0bR5XqI~?mp}85eone@*HYZi1$hWsL&Oj`*KcfiPkRvsePRb_%eMajn)>(Xy%=3co}`vHG7|D5 zLTJPW>ByW1n-FMh^u0s#JM$e9NiFoNVZl9RS*0)u|o^zXFcbEr!cQ=`Vfz@f!RF29D^D(@7cN4-lz{{Wni^RB$H{Zq@MP*F_K9u>ov@)8m$Fs zUGiRz^||*1G+*zhobK%Be@$Mr3`qjhhy@dh8Ykvv{W6t`Lb0GwyjwCk%lbuE5Kv?C!%8Pz$9 ziAeZasmF_P{{Vu*1diJ#!rwjr0M0bQr&*?}rRp;MS}B#Mw?sg(#PnGnHC5b&?T+Xa z0%4~A0M0MylG#OfW3JsGmt;sK@F-lH$%@8w^V{I@js+CaHPkB!XYBQ(SxwA4^r{s$UK zcyH#Xb!R}NFC$9+)>q;MHk4TYamN4&JPicbP03wXTNiOa@wWmR3ft)zHqmaD^5(RM+HjWLgBl4e}_516a zwu{Tw@cl$J)N(Y(fHV>jgI`VMu@h_5;hMv^2hw+&ztQ$$7OKiPt+}9lu0eIx*VB7?i6o9k&r0` z_5xX_==Qdt^nEW&(fy7gO7Zz`Of}Ij|J3yN0n8SmanShWkdgWCPS)@ALYi)}G$^Cx zCH3#5vbcp*k{6K*J@8s2A3o{cL-OaDQhl~zwKiFE{+h`tRv+~f7Mz_0DY!u(k ziEDA`YjLlw-jHoC-u0mt(YrOiogX2@hfvEilgW7eKVu|&(Yk7yewikbsp~gV+{P`q z*+%jNSub8h{^6qI{*0VYE`Jvl#=OyW(Po8Z<_$kcn_bg1KThEcHa0q&vIyaMACEW{ z!TQ9qF_C$FnAiER0tdm71cBzsJc)H{qj{1`OQ;(1Eeg(kPIZx5CzkM)qdG9JBv#@4 zzYi=mx+wQ6{$aJWzm=`#HF%)ZJk@_3mlp95;6=od6>0lCIUlow%>a%{mfl;qOCKod zGRh6SVhwjzl%7oTN*SSu@5xndEgS6r05AHu^!KSdyxYyUR+^O7(M1HGSTbBsb0Vn~ ziRLXEC?P`+OWzaCF}6?nL81AIeROJC7najiTPc=8E@X}cF*35R_l1YVem+aj;#>&; zzN+$$r{^2hoptXoN1`lYLxPx)cK&alTJt8J zG@Dklp8HUq-fPeAJzYOc2b&PXiYwer>8(C2Nk9)zfmuKde$PRHA&CBPKBEVdC)6y_ zXF6Q4>J!?z2(v|LD$MD~gHMGk(-ak-m40ft^H-LwwYlw*8D))A){p(z$iKXxBa*Cg z`jM|A`#isE6IZgv>vlW&`KWnP+efrrZ&A3nlarV%EqNEZJP0wcPKbM!_;ArvT)Mt( z(=L3&d!*V3G>=}!D+{YQCJuq45jdXmehe$j+qa^5e>cPN{5cX-4cX44r)hT@lz*c^ zwbS%HTF@+f8)=D11U)HUF^4Z-+rn#-2Yc#Z8SQ^|| zgCZT&o`ck1gO)_HU{U^S-D>bjFX;PQXSIK-Y7kASM{gu^g34pzELcsn zav**;Or>1w{WMamjXmLy>z6u&PiH6yv7`z=ddI1eZ5V<6#~uFw7RQP{U+JR8FXf8n z$}wjm%<{LUWLTV}VT%@GO{9FbR`^46Tt%dj_$eLKaau)ZKP0=iRtkk~>VtUv*`&+rs^SiDj!C?fPLD)I_|(EXo^U%Q7U$WUcuD4Ts9?H2M` zWivZ4k|kKmt!udb09`?%zUM!+#QaHylY7uke7^b(+{<(kzq|?*0&7)cDi6Z| z{C+r4Ngdyh^OIXoD_{Lpt!^yYbeJYvfq1Ih$NP2kp_)PPgZ7*KjzV5Z2KTuBKh8^T z^xIa}uJkPe-fOqMk{I-9)=nI)+N3ifRj;U}Sn}h;kH?1Vt1XX5(Vk86hPmY(B0U~I zBtxpGReOu`cWxS4IPTme`#*j$uC}Jrp{DAWQzgB}<;AjExA&5@-LBp{FU8Q|+t2aw zUDPjpy>Sx-wfwk(Vbhn_Et6r>s~kId{yr!+pT((p(COkCJfMOPOvm*iTzS57&hSy8i+Dq{syQCl@OBI@Rf<_{XMqyh1*6YU- zP41BaTQW<%Lrc|kD@in8BFKyCGQ5_rbs%9vDo>&5ZS3sWIO&+hY!g!uNqlX;N1Zo; zB3M|vNmWvKw!n&?6v9dbX`ywa%ATb5rKUi|i^}`8XsbaT7h%(u4kDTz%}03!yfRwP zV!o#?K_n6hMMYH9(Rlb|gsYhReAt+8*YWU7G;57AV1R+?aqxg$*t+qUPSScHOr zj^h)O`YEH`1JRrDZRi+*H}??IXnDgI7EM|NVsq{qp+)`w<|XD5`? zUc8aTBzfEw024%5(DwKJoNl?Pv&lB|m4>(G3u8P!R5~JQDALP2Jkt88qy|yy0YP5F z36Lm^2@o=1G~_$N^)k3Nw&nZV5j^)JoC6$oRi!5XcI8b6nZ^dhQ7= ztxwc7JA!VfjI(-E%vED<03U)^_+5wDem~63iAYQ}%LcKUPcUh=pIFr6hl4;IN9x86 zNF;++U)aD>ijplW%)VdYbpqU2U&s5{Wdv;9RD(hoVys(1eM3mqCGxhVFRx=mCW&<` z10;}x@kGO~C@QPXzr0`eSVtx{w_TrC^4_NwsD#bs#vFABejoH@{{Vle1CdetYCqP+ zYjnfR{#?_1(WcwHGWr*Am7h%2A^4sbr9-FlD-X24W!DlD%?ss^G2Y2|{#)}JELzM+ zOfUAMyoEppblQtk_M&6SF+kgzi+Nt}%X+|@MYda=7gLc_QPP1`5j2GJxkA^|aZn^tO4@2^*cow07h}j>VdQkk<|v*ZFc>U?5>E+eZAW^K$AI_g7w3p87asSCZOm$RS5h>ak>0ZaeY^$MbwrFwSBTBRO%(yTQI+#w<~Njv z1R!NAO1Hj5AiO`!zH_?rZj4T~0n_1~8Vw`L)}&InpGua_i$cNTLWs_M5Xr-`8euhlHlwFhQCvq%$coi!85foXb9 zvF2@SPx2$gH2CZqXO&)(GKZv$#FBn4Dmr8&*gMm`Usj*=c9m~(9d!*yPBYme{3I|~ z>>*a%4nCYSObPgS&Hl?J6V;4|#VHqpH(!g@ z*Wf{2fi*cKuwTxdK*9Nce{LUxY9=clM_>iaixVIC7C7{@5|w^XJ(Qka)O9OKRyH(> z2nWP1tzd{Ps;~!sQ1P7p*Y7ZOTebnNy|fpXde)(*OQ~w=j{0@ukh0v!ej3}tPY7X! zPy4W9Xp~(Ck!Zem)ik{p&c?Za}K7MC}g z-Ph&qrMQkr?Si+7}5 zGo)9Ez`8LGq!2*_coB-QI|Tg7@=lorkhM=VX*OxXCW4mtK^J8NF(~|3t5@Q|#k~-` zC%xuBn4VzLEWGEYdB4jD@aw=dn%0uzi%A@5`@r1x4;*So!agosmnA?kCiXiZ{{S<5 z{ijHLvanBfx?TCVy_KHi%MpOG`iUYP>Vz_pT$d3$G2sJo`dFprwdTJ&`R4BXM?%(+ z!1l4+GJfSPl}KhQLZP_yr^S$*sM9FKk-D6g(dpBZ<;^nU&U+AAE$4<0Wm(;hnk&7!Vk)O2TtNhBp4nS^s zr0siidV~;pMlr@K%}y}e0B5}z;e z=a{f>5Ff+kgTy`K{feApx?k**Yi~DbQd-LuzPTigB?NPbi?SM5Z{3h<{#Hke&7D_9 z)$YcgZ{_nP$JKdp^$olr*0lRRk1xX;D@s=0VbI|98t=^R+|$!fQ5HTevE(Tl{8aJ6 z2|=&Ls%ide^1|NnPcWP555wsFvB=V&VQ`b)h=J4n@@I4B4=-9>eOl)6W166FWqzmM zjWMv4gY&l9ORvivav04Y&<>}iIJ%nRrSmuCPO<4ncct99T|A+^oTyqThycb;N>7I# zEr1?~nA-Pb&}v>!crKF0dyPsaq>@A=XycEU!&AlMuWp$>A9wp7_?7_QL;lPDDTDd4 z3kdEZl6^j7c|07HW~tK2`P@}KmX zquZ+*EUK9xYhYUC8{DOjt7*442HH&-9^!WZ(&FLSk1dyZDe)8k01c3^PVB@FL-#W) zZzpJ4Y@)-=`g7Xqx}qP^ht_iiu@&N5(~_^u_GZS1{B=n__A77azc=WT+*-Z!v4lJ( zHzq|4wOy)D**J;!gdAg`NoBc6{;wNB>0JoSw{G$?3B6C=BOWAy@G|tskl2Tc;ul#_ ztkPDMLc$BO`fPeIt5Bcy@m@<~=V@>s`?+HKET?sD%nF{p@KV?>OZ>X?ecI|W3+wx< z>lotWECsj|6NAroaraX$96kR4>{?_9JigTH@{99RNAk9_scCnHX*{=fWcszg+bByO zBaY^!ejd3IT&Ga3teyeY*=nVFAt=5j81&o`CV^RL-lpouNVaxtD$R2Ft$(Cuh z*Ou1e3yHmULU>3=#8SI*sWog2hRP@Fsed_X)vVoD(tsch8w&G0huRHQ!h}Avq1kG& zKrR&Ww~;1>MLbzuO==I|aY`+%mRS8Mg;l`?PeL(5Po`Nnm-QGl%L^~}3owzEL_ge3 zQsg%xehE2z9Dc_i^05g-d7I0Yy7ix}^tE*y?rl@0#XKrN zS0C`$IdWIb+Bcas{{SZH*AHdR+fXq{Z8J4h(4Y9&5r#6RGL5p`Hva(4-fH1`E-p1_ zBSNnkbVvAVSw}Y#9zNN0h&_MUw1G$dJl4JDPttl-m5EJJZms?a?j@G6@vp(~1w43> z;grfkx_p~s560w3Wei<>+;Y zn(7TfpbtxnR-F-v2XMq7AQRzI$@Rt7oWCXj?jf2CF^uB6xk^JBEuUGu1K1}+>j;D7G zhMTE9MYWp9@=CHX@n>~D*f=-+sTqCW>0a<8A$%$;^TL<^*7YPU)Ep&Lbz!I-HsERP z8eWtl2b#W`vF_B~g8=5QmwegfJzLG*X0g$2u0_?Dx(zm<;Imyy4K7+X{g@*ABldBT zHRi%2cd34N>UJJm{JXW%1cDX0mfq66gfWoPk~}>$YU2^JDHodg0>aqar=GP0Yn#ZS zSTxRLai3GXc6mKDZ}-uWVgCSOC-UGX&7Oz?hTUHM<)15CY5rb{(&!299QyZe+wz&u zCMLf4``L2j#Qy*`G%q>o+H_ifms;6kxmn@An&o*iMRX)_^o5Jj!Cq|xs!}@$UsCPEAdv9*nch!$393P9$eDF{i+#~ z)q6$n{>ui$Z^@9c?|mDh`8Lv9M!DAPVC6VN6_Aa1+n@%CP&aBHjNmZ`+{z@6do2Pe zVgUdMqh%d{88CwI>yOO4eQVA7k+zCUS+ttOFXm6(TSATd=^t_X#{-Ns#Med^M?Hf7 z03}_UpUiJNY5H!gqfpcZgw`@#Rm#Ruq?d~IUrbHJe=BjoNl2nLdzwU21dW@K0CFVt z#goQ==O;YHVPWMvO(yEC`bOq5$r&D}r2`2amZWb`tNzO*IWZ+q{&DBbo>;Q-mBy4N zRhGgiuJtR~9ZXDal(1e^{{VEV`Ys#nvT?`=l9M13Kg}&##`fCk${Xj?^r^@C75tS3 zX(Zj223pH1_$n_Plx5eW36C%HUODC|pjER!Sp6S=<+O?_MV-8n-V!FH2UT_fs8n# z1NKPoTv@q`8kOo!*rj-0KyN|ZVyt(~K0xxPnk~#4rI=&66UY0xK_HEtcj=L?t9w)C zAI#s#eRs=xftyW=ZBNSu`Id|sCborGmqEzTR=76-G#=~aUoU8uURKiwmTaK8utZs- zoXQC-!{RK%?c}&X=7A!479Vxws~ZdJy;oaHf6@Az84+ZaRU~2w2E4wJkl~M0x51aF zek8;E!{yHCleHUYQ{>4)}Vqu9t*L^krm>QP;bh8 zesLO!eLgJC>m8NSM(a(`uXS$t0A<8_p)J26^&6Sc+{htDQbMJys69g8WrGj1Oo=@k z1iuv5nm;Kt9R~K&!oytkwd=Uc!DjqYhmA)uvo9)qIASNU*&J~~{$BbTj8CNb!t&13 zNzN3Xggy9oQGP4#Grx6$0slmq@{{W;>z<(S`&F|+vfn}t9UiR%vJMd7FAFU5}MnK^` z_+Yr5$LMVJ4Zq@(JrDDH^77)s19N+)#uWN*>&qCp9w&>1X8W)ZIwVNe{{ZijEpzju z%9?%p{YUH9P){R86WaPh9zm&Ek`Bv}un$CVk}Pp2&-v@+m^BM66tWhQBPGSm(jr9> z6xrRW@o$6}vKRQ`W7huwnx0A2bvw%v_W@#JP3*J4mW)ruNab&bwJ@0rraTAn#GBpz zY5rVlS}o6~aUHG2sbXzyriwXViKoEp@V#mK4S-N7HbsBMBzg~@Jd3JW&vPxtrC}@w z;Ev`_Md|#8ja)t;J%8M=@QCIQ`y~GW&0coUb-&6#Fs+2Q7Y%0u3C+M{kQo_B_?Ry) zKG_~HTLe!keE$ICy&qGT%GcM+9Ia^bEK#Hp^OkbLj)2sB3OCC5_}l&Yn@bcZ|2G8*?ipZfU^(0528)0D{M5qL}KMCDw)H z>&dlmDSn2WGTQ0alLBPtGl%EMfmcP1xS#T{ksfrCWy_)iQSv^$W2)WhmzPhdU)c*^ zsqil5Q*g}6J~B?!z)9wc9Dq>OKPY_Ew$ePBHQQd@P0lkMYr#Pzx2eA+-zzikEr59; zBmA(xMGGd6tV-ymWRYQvrA0o^#Zo9X$eg|9J{jm6o6CQgc5~ahX;-n>+OMXL_UX(- z-FgBmhsB6t;K=krUw&VCw@|*gywfy$`E8rytg!(5im_n74_frZWr^y`!XQ;OZTVs6 z>zP#}(C%X*i$M{f8-1_Wh|3=KMhCev{Lk`FntZ)+VXNxUEH^rU3s@8?A&o}`09T7p z5^`a#p2`0JIG^>%ZFRj)=Iq6#Nb#glO7#Zfm6}0c<}}G~E=+chH@{2f4Im|cw-DZ& zy8i%Nkb&+&%O3Q$Z#sEa+?Tr4?V&_`Kk+u&GUCe~z-k~4n zSLNjkub6BO`~Lu>#z*{1BTTIxeEa03K_lyyDH|wcKD=}w^fj-1J`B5y4;mfebf1_W zN`OSt>y|NzRJ>)UjYBBglGN@ikA*JgM=X2LpYpapE#6ZK`HxR|2K-j$B1hcW5-Xb^ zZ<6Ero8%_9X~w-^&?(~5ePS*kp4H`&801GL2P8qOc{k?Alm7rHyzy&ss@ZF{7FxZ! z2KwS$N9md$vmjGV{BU>^<^r7YUi%Em)((5lDlLd0`r99h+e^WX-OXtEzF zTi#zeSh50|N zU2(jZOT38~{C37WjzvJ*0g#Vl^V~Mb$KqeDeZ2w`4ixSfoT!P*(&U#1kV+0 z&JYmf^-xc!N%>Rg+XE;6*Yzxs(DD_nccu_kY@#{fmL~+Gt1Bv!q=G1DMKDsak16>> zPPWu!*Tu8jPdsZ4t(>7iwTXJF0Z^sS#N~e0Kz)fKz3dP3=G#uY*F3dvEO!@@y~i7y z8$c$Nt*OoU#ZkwZMMjmIj|OgEYb7tI$%y)rZ#hG1@LR8$owR)}3DEg}K=RyxY96eF zmTA(QIgZ|l_&zU<@YdhWiZ6ZrQbou4#pORB+l@B<*UXLehUT;Cpibx6U8JQy$;KnC zvXzag7kR4r%kv!|{Q)GNUh(CRZ()rGhPkrR&IqkqP^ECt#CcZds3&Jd=CpKd4WsS+1Ss z%SGBWSB7h;1cm4k>&Dfq@wx#(#0I;h9ZOB003O-yl6nxqrcAU@R^}MdhEJH=4$@`X0J0S3uGuouIO~xl%4@ z6u&<~fQ=CF_;>X(K#oKHI*KE5^8Wxb$kr>So9nANq}6R4-(A~AZmw87fz_pHh*3FV z>DDvwCoi?jjvqdy5wAVJ&0&Ugj^UooSrHtxXOL%A{hE=-e|lghlUqKB{IdT5oQU%@ zIz^qXrKSyHIGgIxi!#rAc&R+vAYYPzyOEOOjW9ew?fPEnr2*~V6Bl|Ldr9-aJfGIwR;UG_B?s$J$y5w(pXdl=_yc9c*} z83lnIHryTl&_8K$T6qSYrfZ&C)F-rS+pRN94h`%Uimqdk$Wb-A$dUnQ)vUh{?wbgg zyZq(^BK03IY2#FvLW|7Wj;W}?yxQ8{Jw4lYDZ~j9K2DrZC0u7*7`drr-ZKj`CBP)zc$EK=I~zcrdR48eZLL>NSD+W>e)dH(wZI9t$r9hw3;ju zMQ>*iHm`GjrGI{?LFR@o98cP3_`c5^M&oUkTW)uHSLHvMJjbv30n<~G(JrBYEvW)| z8-QJ!<#{WX@e#>{ZZ`h_biHW*0J%_P)MSz`u4-0aQWM7{zf!W)7UZmQE3&H@iLAA#SOMCJI}gVi9q0a5f5%p#{NMHw{{V_he95cpx-N%v zsM}oW&2wx(mf23L>PAVRW=E8Idp^x5;@HX^cmDuS#G{9mf3V?sj;n6h9$=eG)Mb+A zU!Lt5FD!|gDDBD$2%1+Cw*LUI((uaXE~K_X1CSdt%|FaHdQ6sHSo)rxivuiebE)Z( zfEML)~xM#O)zz$5PYGL+9Ff9aLx zy3y{n`87zq!05BLt$HMh?O9)#V6mzjkYif>AhKn#hjlb$n7^h{{{Tvj^EmQ`r!C&G z1>T`~sM3&JtaPhC z0P%{Anf(ujMydFy`8fb8>OYTqBP#~1t)BN&xzwa3bt`*6QRcFaNfy*aG=rBWaT-O* zs{4){z8ry&JwrYU=%0COPV;P*^XsEm)1FBXiDT4mBe=TZ86cvGmPIVzv+*zb*v5xI zws~4RL%;JA`I7F+&f`Xfj1(|xDv4<%NN62Z1I6`?zSTY@{j8M$ZimSK0KWApk*Xw* zj~Dxt&qnf->H3$b`j40F{mx8}lW; zrKDLmp{dwiTq{@V5KVUx0rysAd&E!=fcXCa$;#!6hkD^<842xtU)D<_^Bv6IRM+6u zWr7-70M_wOJ4o|9gNROdbH?F9o^^|sN&pl}A~elE=ND#sKQ8N6s3yM)JaNaR#8I7o z5KM}$$OkI#z8ml4kUno}ZF5@A>35PUGe$<0LM`J z-#Kh&X1I?yJL%9P3{&8G!nNOG278O;G>vC4TJ}RgD zM-9ig{Qm&st$-Tb{{XT70FOMo{&Gjms@_x6e7CDKN6cpFF76_;=3z)z)B%Zqi@59l zRz_oMKs(YlTL|yJGrYffr6X!_uuJVmSjcZiFH6&j9P$ZI+fd&Z+Q`V)#Sj4e9=(6A z$hW4`O@`L;=_t)?ZV@G?e}F5TCvJs1leK<64clv%M&)3eLc58ikSUdY7l>4KBuE~c zeJUmGdHNDD;wAf(stqqd4<^8NG3@-$)uTYgK# z1IdY(j|2NVVENyQdOnBY{rfx^MokEIeblsD!_w!M`wc zYfsG&CEmoEZlz&=r3SdMTc}03l66K3o0sIKw5s7Jxf~~}=8q_OlT*<($FR4vf;leQ zD|2P2b2jNbY`+r*BdZ1v%k1;ZBRc+bRGZP~3P0ozZ<(*3FN-25->#9LD&B`M!c=F=t zf=X>uZvOxaWkeGzzx2(5Lciiui%l2GTArG8NnT68G}-fxN$rZqZ0d|wCbwk@@_Z{- ztP(r632_t8m-SL4D`EcY^+_9fXRb*$pMP_uMQZ+Dh`iUAzg#BnIM%MbuA)?tzu!yA zJ}i|Azo_;8CJ`hW`bYX-(wu3tc~V_DuXGPC-fFh8jy1i%5VMoSNTL{;twKQiKVvB1 zh3|jtV%;g^Bd7Z*B-3e=c}T6cx8?g8Q&E+r(WIV9CXNE*c&BJUl3IVd*De(;j~Cem=y^^gmOyZ!TTy+Jv{d zEv2vMxY(>w>USR(BA{`9NTW3y;!ZK-B`)vL6oIz<{xVB7KQHQy6}^D8wn^CBsP(~WRW1?g+~7X7pA9}U$v5q47WtG2%3Ebq3XIWxu!v>X|g57 zrNW1bMF7+un`8`IBP&G&0z$kgw%dP9X-iKR6$A}|rvCu1B!>PYumXVZinbcPyid?E zSO3uUP6a~GSl^JX4LW3k3bZqur-O0*JT|N>42$Iv|m!m%Xo&MHD zo>#y0RzxuxE4{PMfi?=7{P z7@jMrT1YHxrbhJR4n7&fAAzRrx7l2e82BfIpCZk_Dtxu9>N=cPnwm?f$2A{RlHi}K zvn?421XfuT@u&N(axyl`A?#Ymm|?KJw$kh(7aEl3;J00tIK??UgnfZdpUsA-DLoXH z4IfL?t~DJ)Q!?F12~?g@#uY!ZiP&VQm9P|SJm+hwYQo1%x1Qo8<@JlgjF6}R(~B^p z)a~%#G=ND@u4HJSl2cwWAz}W+R~Ap0wVUl;_gKEwt@PlsUtBP`l4WF(sZ@z#M;{VJ zPguKrAGMDb?PL-=o~`)}rCi&2e(L(+OEui=&2rQ-T)L0mPRs!08Q82}@mekprI_UP zHD&~W4*hVYjCq?!(Fd3`e=+JZu)45kwXu$sLnYZ%72B@cV5AdCeU6cTt$G^YoDw^9 zf~{?&mJbAf6;fB^KfeS10|(W&MAdV7H~i!`oUL`MYaIg0&ECvN(@lI*gM<|2=yLm2 ztv(!)pecwXl?L)&kEza{VQV{UZ7WBxiUeE54ANdV0!t-7d+9_&B7eW~z8--f?Pcda zdh*r1{{WdRBDAu9sZSF-UF?&vEO^Otw-^9FWj~W7A_3VPTP0RD&1tKnSYJt{YHnnT z3#&k_43touVo^q`G5DFj9F=gO8}~cPy0@Qvula=>R?q19f?I`(@+p`q$Yddil&wd_ zUPRy%>d42V>F>+W&n-XAI>7Sn)vH@;k*oUZhn!!#G-9vZVKjhE@_K}l1wu_v5mV!V zlh3^G`K;OxlNZezWs}{-^@WM8=SPXcmnz4NId=GPkjIG@{&~=~k0lQ_MqFCM57s9U z1L^@6#PKle+KiYuSBq!MvtIdY>z-iqm95>vYY}Q+ThYKmurkRixK=dyUX1*Zx5bC5 zFUdE&^DAmMnvS!f*wX7(($%$%5dQ#mA~#8prArQ#yjn5 zJBwmWx2a?Vk_z&p5}bCY?BVeMJrTlC*7}V909i9btZU7{m1xb9@u(gg1{0Kb50W?! znjcv6oK_a=J@&b+TZWNQN7NU0KV%9n+`11A{)&>w>Elgz5x>x~rV(&9T~X)Qfr6i7f6{hEqb z$7}+981Vbk&o1i?V=~;Kg2vb}fhAZIla@6@AOo_kdH&8DNgs=5w%2x7_V8TIdO;5I z7BRIXF_N?@q?KUB#Ed8P%6wtGLaAK zHt$@*E)OU1w1Vp6Ly`%K2Q%7896cP8wSNT}E)mxL)+YPM*t-6~yuWa(#R8}DViB+xvyr)k<}m36!OV(PHXsA?BxA67#w#ZoAM0G9aM zED;hcWO!J2=6{`hyQz6bO+E-=hhDn8<$J>4(q)b!>Nzn3;$@+y^Ikg z$JEd~tL609ZeIF*Ls<-sZxk&oYOqMk7;qa`{HDPX*4deE^ay`Be2izlj>cPwH7*j# zGzKX-ub_pELHiq@mJjVL(M)UswpJcf6 zLbi;{rd$}-fTXd)YZIe5+_JQ-{=+19G>f3O%D#Nke7oe^T^CKcF>0Eu@-C;TLWQm( zwnt?`Db@JXis0qC^VmHj^2f<~j9S(I0Gjlaa}3Cq)-S1ZS!Eo7mUjk>wFlu`23C97 zL~Y#l<+j#d*+X3mLB-p@cE-OsXWIV z^NaIuCAeSQ7=t61uEDBG(+5=6$W0FW&bK<7rm?5mT39G=P2ruSknix-N`Z+;zNlS$ zQuEXovc;!qHkUS>fQCl6WM)z~MAp?tWqK+&Z<8Rr)DA^VkyNa%pb$6;atTkHs zhs*KFJ%q4?MYxGtk_MOUR*mC?fm9YJbsO04Ji%`tnRP8`=Fy{GSK4~b%6J&^oKf00*9Z4+A4rJK$0 z#-bOne}+Y&aVt9!AE-ZXo>oUvTQ8sp9eNelAh)*Cw5YWGTS-$4&2ZtRxJ8blGKwG6 z;zz+umM|l@AMq?nJc%Fgn8DB>yY=sF+G}*SG@91sLb|vWAn_~4zv|$Tve_Mm>8zL9 zMa`r)9$$*-^$TL3rDADaV!1^lf-ex#b5awh?BX^X7694YQyA9uq`JPPqz2Q1jk&pE z#8IkAt`1%40{N=>Z%@#!?&XJCTf${g^=7o=Qz`yqAa92VuBAyMkU{GD4zHqJBv+?ri()`_~=r`JogF|rfrJyy8OCjVxj!c$3pIqx6 zXVEmawU++zAWMlB7z;1~o%RFi#6+o(3DkvNFv5f%#AI1C%8MOnYfLJq5}qx#)FTpy z|IzhMDz(r$l|B38YR3G_=RF(BhTLjKQunRt+eZXaOwQm|fJUwO;WbuRlU$OYJozGj zH#U)|+TXUG_SJPVElgrn-bIY<>nH5;`#BO%MnD72ka=IrdNzsW*z}DUi0$G=kJm~U zGHxD5Cbf{gS-;B0i092V^KZ^SJZauk^4xkWDDxh+?yVdb6f6yDvPdIcg45yKCBiD? z!cyO7j(JRZcTl{S%wL!~wQhCGg=jP@cv^2>IDQDL>8rePD-H?veNGq%JkHTr*Sx0s zpOQS&=P%4#FRE#=X+B)i*$N8AL~*IF?-X>E)PHv0668qe0$^`)_0451;&b8?0zvL(#9Gd33|A`I=yUt{$?_AzjNcW5E=E zGjU9j7Cl^$O?@Ghd27u2eyrCTeVk=3wBU<>8iVP>Bm7>NdIWN#`7xk2NF=AOhD9I_ zhprT`tyl84-%*M~E}<{hF5QLo+bA+UyM3#4-jSgn4OimGn_3LU#>xvDdwV-b{To|! z5yGqXLZ|=%^kJn;IVEXQN$|j`b6cd!1gITVgDq%iL8v1I0+7c%$K>&?Y8LZfUOQW*JyB`I&_#xdJ>sD4&?C(HVdm#F!- zSJN%+p`$^i!xc<%MG+&KGxu}*RLD>znAmr`{{Zt7@{i2dUT3+JNVBc_Ta8aukJbm$ z_1;pEA!Et?G>?xV`&lAQ+68h*S6H>O(zKheEng+KoNXI{vb43BOTYJmNo58pc=r767&Ycs?dL6Ext?IGI=2*d5;+m0{q1dUQM(g`IF#>rl*ET2l$>)zaTHJYq z%C{P9cXkq5{cg)pjkq*W)qXOq%b7+r+XaRs7nu2bR@L80pGVNV!8NX(s27LoGDL*D z@bXaYXVr93oX+)hjJkf~yGE^&@ z5hHtp{>A7LX_}q2jlInNYSpfzyHPAMLuQXi_=ck_aW@)+`&n5v)w6Ep0eKq5!8M(E zBx=%6sK|PC*xTY}JJIlY-{&@`d!~7I!sg%1*LN3-c9JEH+%ZKh5b_cT*%D8L)3+R$ z1dHf{Pc!m|m-X*6`MUE`({#CY^(h5ZylpKWA`Pr*rXOG9{3Jr>E$@^N#-jmYQ@NZnVVIE+6~b zi-A^VJxvsVwZrdZ@_)`B`Nr6^@g}$B7}{u6{aei@p=l7^y*4#Jhr^Ac-ZiNCb3?Y# zqrJD(;GXh+UZsLFiLK90EUcrI4iF7l_3k*_UDTSW ziNf&X&-TCHc!-iV2=|l@fv1>fjo&~zn?Z15x>l6>Y$>wxRVuXPH|2-~bW%rpbLKsJ zMv^G4Ao5+UgvlofEf9 za2=r$u}|H?B@7ghTmBm*!z$!Zcze}jxYRtKc^;Xo*&E5{3pW_9+ls*|(NRJY7k&3^ zM9Al9G47^aVW#Ukmzkolw9;>)wT>TN;ux>Q)Q!M3S1gDfl0^71IRM#>OPxg(<@q%I zN6%WrM)x;bHJ*^xdX%>;tt4+jP(j_O(XiW=1G!LkHh}>K>zMH8iD$5@e&zE1dfLBJ!yL|Jh zX_xR_`QOa87xG%)>6(O)v_LHlz09o>lgqUjcF6*Hv7mNP)#lSYm8_i@$d|Tv(P{Tr z{{UAZ%Smp9<&1%~CXxJC;lxI{?QCVf;hlfV!;UX8`G-%s(aie3wQmd>RkVz$AJs}w zBfr^I4b7@>jutm28KLOON|Xbr_-3Ot$)K3UYuq)vXZI{rht-`rowQ2ONdl zGAL}F{{YTEd2aJt^L&>#np7>OX+l&5)}bb6<`fcsHcFfZj?9IJ(f7JPn=X-(-&u~v zB?p4TZWw{kZqH4>)yV_ojvq9=e3$1?Rz>rr%TQEC){t>Obr0i)*M(9YAI`V7(MKnl zeyefE;zhNO)gI=uGUCKX%}KnS`GSrf+s<=J5rY_}wS$QRvExHb1eRPrY=NQkiv&-s z+QvjdUQP`BrS3qg(S5K2dy+?*6|}!SDsvjew37ByY(TGtM3~t}51Y?_Jv84w>Rv^^ zf#9;ZwSh#FvKKP(QUTzlMGt?qh$pB?i0^#oA8p0UfhnK9gfAC6vkg+loRNquND0naV2;DoEz7 z%i+dgSf()It=W{ek$Fzf^iP;HD_hM%SbcpvP`$YI1HcUxQ4son2qWMVf2)KW*$4~0 zbISL=S%!9!D-SZ*O3!7aTUks}Ux-jV)nzKf_IYGz1e>&RwxKqor`*kFs1QpZ zOgE;*LX?kb-;df=<@+m!Tq2KEj}=h~g86y1x3!y2it|+SG>+F=iF7f>@s6ght4e*H zmm*DzC;ckMTh&+N-mKbH+&UcIWs2=BbisD1>e{S}BhG35j%(@Hj~a3b{Mjgz(`AqV z^_Sz`t1p$>_d$!yIzpR0QUDyqEGY~x8QrBVGru-JEKGR3{{Yho44b=Z~aj&%g*7Y8DoDB%d=-|oyoDIpu?A2sXRjjffIqpD4R zC5yVp0U_f>UDcJ>?Xju&j!4MW79df#+CPxqcf9j|kZi9n*;@MCwY=p#V%QV@QC=)? z20`evOb*?Ld{t`AAwoD(oqT)Zum95ZPAcqGB=bxfgs?(wH5jzj41HOoMRuVZ1m<|F zf2^&9F)UU804n^yuX=yt9Y*h53ONLl<>QE+we;XIr{ROtI;aunNZn^o)pXk{e=2z* z(KNW4BJ%12HE6A)B#(s+JxQb>_x}JXunG*NW#=>gN^3f{mw9uiOZqzJn}`Bya;6WDdU$+o^x{IWAk@G*CYT?KQn8 zK!@}vlk^wVUdZ}S6|*c+#M>G?vUmA&Y#RiUN>k@=FnOy@(I?k+d+79Q3s{MhOtu1P z=8=iwzPpcu{e*w)u#Nd_*S}YceqG#ZnufIIKQhuCM4OFOZQ^Mz+_9>_w+Hu|FWPV2 zs^UrJksgm{@*kM)pUh*+wlY_WYlLxH7tsQ19h zP%Q?}w~i`;zgeCsmNyA0RuM?UkPb&$ZBgxt5|1os!$#AcrJw6pcPwVTx@xF-4^|6O z5quP5y6hPKq2+xi&U(k`2{i<`(Jg~o+*v@S8cC4+Ni5*2v_ik!{f=L2mL}A1&E>j{ zqUv9o8t;|-ywS&|U#v0ezKWV87K7u3X~c7ow;s6iW4U^sn7(becr2_f7t7i$kwjLP zgwslhdLn{SHDEr|a%_4~PUP)l{%oGIi%!`9@xnCfsXZm+Q^F_9v zRV=mJR}t}ecaNyr(Ct&goQnAg3A2?e-<@9#94+Y+>H0uSjDR}N6M44nze`Z8HeikKJ zFl|h?zbC9}eo&snK-7HKduDEIwM!U2y{GeEtl3WrDvO9_48gfNEUZ6k`LG1-(SSFY zb=&)mH%gaMn)AtaZR!n5D}FMvp=y_SkEpE0eLqu@^7~j$+>yc!_kT4XqeJE2(r6mq z>TM%Xoh8z|mo>q6x|T|)ndDmvUE%@(%hzeH-L-W8|~e*mI^)W0IzQ}&KX4>kt7zS8sGI{tdx z+gq)dl&@|j)UH(p#McES5Lc{dIMJTFa>7M(NZ*qo{H^?syu7$RX!G@T4MOLHuv<#Z z+z(LF5NO}(eT;!7M|N=>BWJehx;=)SCDF8mME7#~_YG2c$W$pLpYl~e7->^`Zf*97 z+o;7MT1gQFN%;YQ1f_RVE4Jo`0eWi^@?a@>t0kSjfZ;COz{A3*5BTzsss%X{0M zFwJdwrNM9~EIn!AV(G|jO7S~WYy!KIM30iBM&4~UD~Q_G8>=$$&2G>D?;9`om1D+I zl>M)Z4PQk!)scA@Q_*474wDGBy0?*|5H-b!a`L+TOwQ64P6v7ytF|~A_F!2pz{W=uV1CMs0^@aL0vAHnPGtwWM4uOf=6ed_{59;PDEF7$|s>o zeDVGuxSsM2X6n~ku+ZdehKNt9=IZMDrJypGUn%)-SCZ_1A(-keMTQSjxA;e{d8FLe8Fh2nuvI3THX3m*aSisEdP#15}b(R{C{T+MYY zrkU#blI2q0PSs~1$7QCZOB^$WHT~q^Na~C6t9`CGZH*eBn0{ROKg>Q*^VPnHy8i&_ zJ0Wi+&F!i}A`!c=DqQkJrGd_I4_fvd=7sV8zvl z;sZCr%a0_y??L>^{LOoPYHfE~iq88%br%{jvxL07{=%$^cI4j=!W#%7iYvpFGK#rwt=j7~~$5vvAYg-`P2NhydAXVdhJQrc-6eP(;Lk~URIVt{av z^l(x%Cy#@CIDlE2OBc$XWuMg-zGu3U7yAngR`4>dYCbfNmft)Zso_OOp=wbU^mVJP zqA3`VMIa4A1fLRAuM|J>5PT(( zT!liv4;epa4UWF1BoH?Aq#k0i)~|JM(>`Rjcx~<(Mz1Ba+cg}L2}t1kJwIy_54j+N z=H8t?k)rGDvT03uqBtm#NMe#-jcBjxg>_H$Mj1r{N19Fb3uKI2%WERXbk8Q8C=xTs zIR#V{WKF-D(!mm^a?P|2FVxYV81xml^8{=ztu?F3;)*!^AU+R7fyfpgWs?U#HI(a; z2UW211@)93W{&C|PU_<0(YUgj-YH{-MC4gf=4k~sEC580{v(D+i38${p58w#{Z8%m z+j!;H=8SoZM}{~Zt<_wFl{lkA@S$e-SK;M?iz@{Y=F815O}T4(Z!%s<>8TT|7G#kd zaq&kiVMRMCWaAp#HOK?z#iV~I8;dx5Ul-xdK`5 z(Ur-dUHNp_-`Y#1S-jsGrMdd+gk8fr-8TXVY?lX<0WI#>cbs*Raes4sm*VbgprZaY zwp&Qg0t!)Mc2+eVu<+A6C>XB?<8k2J~j z@8sX+gdTp;rnzX$8ik?bb#6x7x`tD>8&T%;F(_KUW*ZLm-@XLD|I_tOD(qD$^Brm#K`B5)*^^1 z1sfR)wK*0kZa@|Nb2Fkb%vANwp*&t@BM`GI$-+uzwl zqf4`ay*oQF#cu8-Z-gVvNtRcr72*ENBxn>6P=BI4<$JDadQ)mK+DkG!-&3VLRrd#ROX$6G$BI}HrPM2`RV8$0_5_F^*}YuI*L(DC6w@)&hH$ubaHzZziAR-_aT#r){H0Zm4grr=e(Vm=)$X9~%|f z+Yz!P$NvB?{LA@Ur8Vx6pxrIS+$$yJ?Cea9Cw6~TzSVwscs$pMjDBSPZ|ELn@>TVY zi*+TX@wGRw%CZD-ZQM5xg!1IUf8cQ;9B&o;#Pjc*yw&ATFTS~B!p7XX*=kF-)))mw z_XHLAu_t7KNs{QZ>fT+@pwTpY%L_R*6qZd!=8icxz>6DHu~ihv%aYf7(EO>S$K}7w ztyfR_+*;R}b!An8?m)5&bVz|OI*+qXE5Ux#VIFEZP)B}$={f=OVn?b@*WPD{se(wp z9wuhvRzdb*uTEIj+o#;~zbxq51-!QLYnBn*M;)`k>anqs-bx3T*Wp%U>3mT=Fo>gw z^ktIkzn9)$)3pr(+U9*`_gA!dw4(&CIB4z|2w`DED1JzhAB9ZPTkEo3#txvXC0Oo%7JV%%4d54}qF!ddKQfch{O(xOT z&=yfkBGf7B^fct$xa3J4831~{%l>hv$aJ!~^DeQcs>yN@H1>4_7`TF11N_IUWn-H= zd;D}zBSFPSLECJax~v=F{i=LlPAFF{s0dBT@7DlTg(|1@VG4to$ION6`&dxtQdfvw z$mn+jV6?ta{Pg^`)%>yMrt_APpYA?+#lpNxL2o#x+8sZ5^&=D(59NJY)wPK4(kqEI zo4bhMw3>Dg1XIX(yOgiQDBlj)FLV*n5InJKqJC_>rEmj}0 zrJs%|x(s;9tX<2i+-U)!)8R5qRVblt%)4>_04I^^F(-5wj;Y3p<}1%F`D{rA^mn6D zj^om@LOokshF?rd;9Oe-+HSPr;ey`c<4k}rAtmj?h*zJBMy$-g z%l5IRUgYD;Hd>~TC(<pV(FA!xl2kHX;>2ZH%ArI7Y}O*xmfTWw+7wA1B{>aNffzYBwmHD)DO;VZDlAxZ9eE}ws* z>Q@^6ud7&2Zm*hYbop(|6ib&^b&1q{q<`A~04D(!lwX%DukG|})M(lrTw5-!rCtrg zTX7LQL;Z`=pR@5|H(4@IEb6xYS+LN&)uqE7<;=F1FkRV#rTueHiPZ1u)E-!dB=onZ z{$qY@>)Icdt=~=3B!c?p8-J`{$behM^QP#6p`Dkv?5;~;x=1HwePhdhTJoopY%lL2 zmr&O4S{UABo#U2y$Ly{|4)#~vhVvJgbiHr$Bg)z|aX;2HiHw)FlGJf2 z2r<9K_PFwFBy7gsUFQ9A!&3a$)AbuGm}8nrm9=hi6t@p)Gw>2u`C>$`^J6WF0omz( zUh{sB<{vrger1nawbEj;i7f3*r4Kbt<&}9K?%SvP9Ar1y96)nrI#-!IyRGVDO^42l ze}5;(6n3&AC@HxBEqQD{&JEK;&6EobYTUXVYv3``FH$uu8)`LczB{CVqaK~+N>WXA zD0}({KaLI8WYO%kDJF+V+dA6eJ@r>kk2mFzdKELGFW z!XtEb+!ML3_={5c4@B4e&E&mK_8V$LG|45E>=LgcIUkCPQAScR29%3>511_Ui?`FY zi1eLO>&x;+qFI_wD=R2G)NwzsejFnG>;!k)W+|m<`buij+F$9{t7E9u^ow{X@)AzU zT0%N^rUScYA-aqoqn&Ov2eh7jMkHaTyiCh17XiU2{K)u1@&=!@xMdpZ$Cm7>+D|NM z(CKknK{DzvLI$R?8i<}T#z$@?q+nQc$bd&xJMsw)=CNmWs@z_!yEToxf-Oh}X#=4? zlHA4|sz%>sRDYL}my#nM^cB~bqtP#~;jys@t_hXaQev52q%wjViZYt5KW7LabKQ*@ zax9}s*1U^Zvx6%OC*z;Mac0DLCcTw@))b!zvmUa;ihSN_NS-b&mF8+ z!A-ZQ^yMW_!U_9LOdDF;>j2Bfw5ry>Ax^m@zyH+rPAcqG*sH^TIrPsmYnrvjnK?^M zGAKjZY7)yOy@Dj43mb?30CwC46oweXeXdU5vxeA_-ow1f<{fkL#?wiQPShv4Z!lZK z9QQY+%(n5T!~Tt8LV8~b_<4V;#}O(U^Zx*1$AvG}^&8l3Be~IZEpt$IjhgFO*0lL9 zWL7jF+xn761abcWt&MMgQuO|70-w&mm^%Len)GXX%l6bSZDaz<*4QMTo0U`yfk=nc z;(1iND*o5<;WJSeqS{$`klS2Ed8{mV5Fb&sFReL(5X2U@xVr+fP1sx7h}ZnQOu7C) z=@f8_X8u+D$ZZPQVYJdOF0|AxXN*QZy3)7=HwvUsKz`RNxnq@=2R1`wv&|l3(3?xt zJkjQvPN^w>_Zy|@ysoV6SC8&R*A`oIaZ-I=Qt|%)ec&Sg3w7qlHQy}T=$=}S%^Kpv zWuv;An>`*nMR#>|C&w7MqN)@_{_0PKF$UC%N_>qpK694h#^Otj4&qBgs9kG!Q7X#H zB;rIeyHX2OPli4p@K|j0MN=%+e2;H=uK9hm+lyOoEFyXqm&#f1CzRAlARG^=DdSN; z*i`-IJvL-szhmSdEL-UR0He~;c)UglE)5LMul9>cPDP*gjtWZU(KHPjd%bCqA(zpP z8EzzC1aL!ID)RdZD^pBFRGpXxv-v6IeRR*PO{-kBoyl96408brFJDo7Wd8t*TOG?9 z?@B)Kc{Y7i~0pMf)wgM<=NA)KOmI;1Ayp>WX+T?Q+MeW3$^Px3-=ahIqrp zAS)s=)DYc>I8y6)t>J`20tn-XaYb4xf$TA)yl?Y6%$B-Wo9+JqPTDrF>q#7XHiKkK z$t+=OB-astyBJCE+oAY=)*Xo5jc$?ozw-7Ae<^BSVb%HRy1t-UEVR2BN&xeaB8EZ- zDO;c@zqP*O=nF({%Ve)ptF!BBc5y zmX3r+NWkM1stIqbOZyb~c>GwN?o2EE<}qXWxvOaHsp@(rhYhZ^1f=R_^;!5pr_zl9 zE|a|GN98vzKkDJxnpNlD%uDO2e@N-6cQEr6l3VK67qK^>)2SuJk*x=!{G%UhkNIC~ z5>O(S`8GN2?IYHIO|6c+x{PqF7qcD)Gal_a8ovsD*Yf;18!I79xAJmHwNEfzE$`GU z^muQZP`K3sh}g)4y4%~z-(?w-n9d&lfyCvBJ(FR1GNX3@2q#*Y1T>r2aZH@DiGwA0$eL2pJi zUNA>H@v7RQOZ?2shWE9tsp5WPwjuR-(Vof=S|&>?(iZYjD0WGB1=xPuark(;{k$AZ zfM*^=@9-zW zvW0#GKDDo?XSkVIm74N6eH3MY^7wuagYD$H+DCKf5BbOc05@nlkC623F5Ymum4tqk z&7`gjfT{aHY!?khZ-}E{DE47(wMD2 zOY^7Yq#u^vebVl3<(hpIFq$jHje!n;l~Z4Uo^r@jv-FYuG3yo0{6R2KXPhn?aYCSTx@=5iQUNtO{7~* z9-%Fbsz)o?Mina*ex!wX?)(LLyL?}3`EZqh>ddsA5`Xd4)`R8QS6mu}fL&JZ=2K2? zie;15P|i5WKgz^;pa4QeVKv^R70;9}((d~I07~`Z&|=f6>8;AWJy{J!Q8@j-wzx?^ z9YTHOO>Fre%yv4rm||}-L#x@mzXGh&r1MGX@s!KNvx9BJk1wM=K z?Bz|ooY4F-Qf60g<$MY|*(a6lG=DSc78(h|{tu=j5XXl?I3Tfj*rUm^ByE?qj&Pbd?eTY>@^$nZ5)Z{w`7+l>`D(pE7xd^UnTb zI&w>M6~xzP>Z0Q8&upA|4lzX>e0MYm(ewWRXUh!aIV@wCg0*59i=I=P_I`5og)-8?Awa~YUD``*1u}JMF^1EBJ)-*|V_!{790$baSHa<;wmhjb!OpU}SmYfA!_P#HR0kX>J zj_XlaU22lf^1KN=ujt0H#yF@n3d<8!c#gjg8Z3Gw@=tT4UkP;kwo8HWTU|h8iIkH< zcL?HucEuprP9yVYo3C!-^?b{FGszitZ(i;AF#UoQ5)XfalH+!Q01Bhd+WfJ`FFeJo zQ6vGDIc0Ogw5o=c57B^X6?XUS*NFhY6ntoJyb6M8Bk8z>cPWE14g6Gv(udZc)CA^5Pj+Xo+sQuZ@9QxW5rhb-DH|~xt1r=! zJVfrGP-Fi9mtT=yP@7iNe7WZnG=5;SkeH&1P>|f)NInT71$n&)_mk-QTuL%191cSIko|8 znMad<=NK<_%@|*gGTFRrm9%>z^3l&xAuAg#KiOhTn1I5(gUE>AYBRV`Kw&Cm8FA{nDn?R#IMzvz*hs|{%`g;^E;z{pK5RC zO@Gc)>DM;5dS;H6jYNjtdCami9hFREDs{^_a<&}yH1aKH%F%gZdp$zqUNCu%;xRqw zvh;U(cWC%`Ik_a_pM;;qRJ)|9~ebc1N@igjnXI| zG^5NuThwl#8c&$-?0mQ7=-o^@UXT@}Ru5R+otNOHcRVqp$OMu(le^BpG_`v@eRTf- zCuvu+>RL{hH>r22%EoElLI~iW%msWnt`aM5tU>C4@-LM2Z!qiEw>CDjJ(iw{WT~jg z%WZIxN%5PB1$lwm6#d`X<@;FQK#?7+zKhU&m17;uI<3X)YLmh#WT%0*wg=&1ZiqOq z^4INSOoJ%BytS~hlIrF`95Dj!T+j+(q!UaV>lc1!wYk;xSR{+f5Uahendz~X?Let( zh*(tazq*h93mfiQ>QX;54Np+eezmR6`X848NUXH0Bk9jNISPqAN5lT2UrXZp5} zZ08rDlG3e>;XO`mIPLi?35P=M2*W3ANi8i}5nx~h3yQp4S#@dAQTFq}E zL?zmL`)5{}wlw2%(Wm;&k*=hzo&QJ{&r6_+xeGSzK+>Nv}o6J%$y8m8))Gmd@j`BMmuy1%bUENG#Az; z!%@FYJ4n+R?j#{u%#zQ>HL3zR1qt8wf7ZkjIVl5~dQFYyto~!s>}@7%A1}m@C5%#5 z8RS?hT4@yVquf0?e=_0dib?er(PYx~4O`FJoYU%aOm4K@0tqT>C3cV%=DQ-N`6-CA z?o;HI>G}#@-{0#R^_0_UdVp!HtYQkw5R|tQF_aJ}4I@+WaQOcK)dPLfMG6U(ubVA& zy&q7IS6Ek7g-yPjra|#X>J8FK6nq?F{{VIV&JYk^Lw;2GQ%Zx&cKXvu+LooMz#8XJ zxFO|W;1-BAHjEMWaBf)u9%uQV`E7OOFEv?tx5~WjZ04C(?%v(KJ_U~AJ~RM7{7V%f z>ac!pc{blm(&oFmbvN=YvMUdbB?Es{e#HptaMC!Lx;jXUDlm~4Ras3z1nojGWV_T( zAh&+ltD_98Pf=Z~imOZNQAia&II5o+1M=UI?b{V|p`bgHwQGv8AI!fcY5r~U#nzv6 zq{tPX-cScLkPV8|VuBwL>KjN2MQIm$ zJ>I7^)a`ipHii|`*+v38-4) zGOk>NBB$c}FZ|d+=93;t_JuUsW}GN>uo>1&o_K)4n+nrsrR zx~Z%NS)*p=+`v59z}pGtfOhg$^7f+&PoZ0B=HpPjxx0f<)oo^s7avoWM;?RFb4Nn$ z$NBJDX;)OS(dF{(o~e0pbp#h$y~5tvDN+FVipY_gkiZ2@N{)X7?WeZ$7KN>TjgDI# zLrI3;RgPEv+dtHcM#pjf_;i1V{n(3yp5`DPss8|xv>iuA{Jm?0Q^DL_W09Gsv zh@Wkx49D#}ah_l7a0@JrB%W;2B9BBj`joKRTxt=@mS0koz0Kg0`=fYiK!^h2vNvNv zD1*qliP1kwXvi(EJhbro_W+YE&Fs?#M2L@ty(CmCPv*#;Y{9UYeqeb6QPVY_FId~^ z6Hl*dHtjXqJB~0r4pMO92L$WaCB#^Wjlu_3y^G71@Wth=I@(W85YlSXD!tOPFhM9{ z2c$hsqA7_0C?xqWlT_AponO=QhO+NH?W#QTTF7O&c%S2r)0GFLulA+m{!jZ8XPXiR z;4iuI#9BO>gI;J#WxWx}2##oE7SOijFRfPfkL_TMUhJi89`i?*+gpNLm|iOQv^zuXmarC#Y=>AXgHO7T|<@-%S{{V)i2MFSt z(P2|4{^^~>N=qc1TXTcnfI#nf=AZe2=HD-B_Lp!mhf~s#tY?_B7m_59Q6*FRD7;hs zjs{yk)$(4x{$cW_o2$sGjeBmAv}@9=D~lwODQ5DYnm(&JC(F9zg{@nv+g=*8$FQPB zH`^S)-M{N%hF_~#T56hn_BU#>MLHEKKs`rY@kMb?2vEN%m*A ztrQlZUs*qCMkuzwF}#H)wk>t75>aR7oh*m5yI+TzgHsHKpA>DrBqbZBtiMOO#o8lTRM5nS8$s1_1u;$Q3Zj_GChM2B#3$tb}HCWZ$6Eu z{IS-OCTS<~P4tw6ZpOw&{hfst1O8Xp#T=P8oIIJN`MTQMP_m!u+MT!WwC!5dsF50* z4nnm<`%8%n%}>bQYSpf;CDDA_YZaEaZ7Gf(Cb8VA0sGiXb?d$<f~D;$|oIfcrQ$Jl4qMp6Zu=bJFarEquG> zt9yt&5$nX)NdSeqdTXw$>?CWsBT7*tfjv6Y{hmC9 zB<@*{oAr+;d2%n)`ssx(t&qoSBaU)!@o-YD5WYVXa=3tk% zI=eN!uM^5?r=aH{Ki#UMA}{*53F?8dQ1fJ3rSF+-w2RnQ`sJ;~jfK6aF~pYyQFx!* z;M6Wg2_J$$Vs{!Ysio?I&G;^&w@qpyETpWlI73lglaW6c*={&Ec4cYjm^H0aRMKo^ z)EYASeA7VlBZihnk^M(u7^lFa;pO&nS9`D&4KB32^F5rmy4|dcYYb6a+yLsTCW^$MvM z+t!JrG9roy(NHoj{{Xb|a=~59fjwV9f6h1lVQKoemSFPajIe4tS}<6N-bl&&W8_=n z#3z&1_00~`TheFKu8?|DEh;*KIuY(V;+M{za{RE9^yla)u%dBnOU#3}@5f`WNBFSY(o3PHEa+U>5TW`~wcS~z= z_2q+4wwZ@GqPjA1aZ~W5KMhaWR&1A6K1Dmb(k*oFGwVK8n^Id%7uRVnuG}vv9uyo` zlXvC&Bl)r6-j|3{N9MhD$5(wS+Qu^tg@v+1BJlw86mJ@J|k< zG*)&?G*%aDAMbr0GPG;Pon&Sqzn7K-k!;S&0j2qKUD0o$fqc&=3+ro{SzI--qey|z z!ON{z?R;4*F4AO?Nd;K10JKTGbW#Za8)C<)1o|G;w?^0eg6Q-$#Dx}MGg5RUzrj4CJiFm zFE8pBTBf7wi1iESM~(v=YCw%@6&j8emyRG-$s3zuvS~V!+i4ocsTq4Iq$&U;&n!_l z#`~UBRrnE){A+^kd2Gvl9V^W?w;IW?)Okg6AoSv_;iKXY#N;Sb{!T_m&0`bXjMj&h zv>^q>rG~F%rAhGIKZ$6)D*$(r%5#I$c&DT-&6=bI2Yp zS=0_iolEq>$OoqX0M0mh{`$vC*G8pyWz#f^K{PPA9{@`1z3D-WY?PWCqx_rsnXGy1 z%ra?Oys^)uYmz)Erz)_L#gaFc31faM>T)o?Cwq&ZEo(9nu4zC9 zl>Y#`;cxEd8v*eF@h|MQMJVq#d1^g#P74I4+flTTO{d==1>u=@1Xr>9E&fh4mA{w% zX`fuNn$uE@TkE=9hSyTJ2B120bu=83LGh~$C_;JL$ahn@^B0#N>Rx2FTBM0UE)hk2 z87tYaB#TG>T7Fl$35$5@D} z$#4aIXjJbMp5M#-xTn)2+ z`*BqSv|G~?DjT3jeV&^)m-NfsO5aeufnMuQW_vl0+Cu9_Bjyb;DGA__NCTAt=y6u+ zq|`Cn6@UNN^-e16RiMC%gNnPF)|JIlJ$<~Nqq*}2w6@mL4iNo*WvdO(6$XUk!DR+i z!u;*|*ZE%$m+nB;KD8l2W4E$-BAJ+U3hDMw)Eh|*g{N?Mh{{S`b_kL*d{e7>= zJY4?(A1QyjN}tQ0nEpoc(@W`{68E1w>&Lr_S+5lAu)?a6y0?e*`EA zx#eFe-sykftv>1*Y;2}es?MsaZrx8Ofkk<*8hmfb{vU@U!&Z?XQ(ae4gIw2B$+~cg zJu6L&wbi##b1W(f+JXV};)$9UnoshQANS@YP^AXS3(Pt*L29yj+g_EeE-M|bg{O}~ zDslekdSlm{r`j%y{!S5p)d<*g^%fDW=^j?o^l7!9%iSAQgI~81wYA;9t?BxOg;myO zb(L4`I&fud1de=37Jr35@~53NKPgxZXU)d)7pFWAW5_RhAhNk5rC zE_8h#%W~c8PIYfF>XJtV{hb~MrQvALiYy8dq z7i_XvXxf^s{lxA=Ni;U(Dsf6Fg-bUi=vIm>cdymg!=8wjXW1Kl$%kRc%is@ODdiKjxAoz=VCWPyR}hvwHam3e=Z*pas->&*o>ne_>D zx6?E@SVw(N(-&kZp7P>Xs8UZRRaZPjakt0)p#Tk^p4sJ*6C&T+sk4@9WIJQK7WBEr()AclqO}1@5c_fO^X~sb{9Z~~#tE@q;U!2CR;KS4?NE8R*`dvop4t1fodg zG%sr7?1t;j8>Zv@hr@J(Mf6|gf94I3oxHIQqX|^JjCyyL;MAn6vFbj{eWl43AvW_T zl(erfi#NLs70#bBTv^>lXz3z&R-%WY3@{MLJU7l>Vb^~zyz71DP>FAGtIO$JX;L#y z9n>+e7_P*MD-y5SXph9d>bl_vy@3X{JH6-1ermSX?3TPDzKIj-mY|dAvn^;Ch2*{r zFeDWGmi?9ho}KWrQF(S0Ze0N;zpE51XJu*~>x!&x$1c0lz8F=dc{(#yNUd-y#6RaJ z?62>1jX7bxG3l^MA5(%j)>#rVKw0>bu2mc1;;s95dNDPAY-aoNGfMN1ku>}L3(O0u z>Q-?y5#BsrpQ{?0Bn&xx1~0Iz-2VXJc=3S+lxg8Qhm$XKol5Ub*PLm0mT^ey6oZ+S zz^ca?T91#jd{_ZW0((76NP<7Dz!7yjVI&UwkqbyvNR;T@qh;UraM}v5>D!x|!1|{v z=%klWXFh4u>~y^ebj>$QfNMICmiFpHD3PJDhLT32 zq$-pCPZ>TOYpOW6V%}61@auXr>anC+bQf&$-2iyV(S>%2m{nVFKF{;xvm^Q$99Opb z#*BvFONiL{Zsu$2+m@DwXyuifIE7TVxBDDO=zx=Xiq>61_G#sgOKZ(iD6T9lp>%YY zoct6~0`UtFDyn`yNr^jJW8BC*hxu)-`I}v{OMPXn^_zQ1rwueqaIihB-&Kwy$(R)= zyqEb`0kp(}Z$t8T?jQ$+(^4^PEC=7 z$RF6wQ3Wp4t~|%7UBRY7s7pP+F+auXNFs0##KmGs7su>ka&61*UIA%JUYkqzpHs9N zi-Evf-Ms0*53<97Mxh-CEFj-DBqB9US5IF>qw?*f5xUhUSH0rrp#Z$Q@vm%{Be{nJ zk6*bG`jxur%WyoaY?kRC7P>EXLpkWw_5T1+zz7`{iT)(2`cJM;8MCvBKUGHlrL8Cz3e$td9XDhwJ!{`nU{|0D48Imj=J&*)*rn z^;70pdE8oR7Y0{}R52nHS1TIwP5E)Urft#8X`k~~t!GuxBt$gEOm$m2s=5xMFP zAf@WxkjDC7%|9*)Zp6~tCDcm_r}t4LG8L-;19N#AnD;MzK9&5-(C?*=*UY*&BU{lb z>Z!)F!`4Vxov7od`Ck?kGH)*H*4qA!ZK~P0G0cIAcUGqBy*CF6q<(nO^&3l=yx*XM z`eRK(w|1*T^}9;)XiqPNS$^6-+WnkLS$CFv!>4PyOd5@hf>+G?TJ7v z5A!d{x|N=-51#y<40`p5A78XUDSK^E&Nk)nhYMaU$Nn3K81hNnGY=;D&rS12iw2`) z;n~0!5S^YWC<{iw)8bzEX#k{tc=9HpsOon9Wb);}vhy8?;u)$^c)#BgRPhSm&Bx)! z=`_u3p5je5-R~jvE?zZh-~=}ZAQoOjX5!e5(yb)~BrPl9(-bzO2)Q=Ht#MT#QC6%4 zSl0@#^`k+^j@wthG_F~r;z&;W<4bS<(Dg-6hAQLot}5RC7^_?OVyag*u-wGaPa4S? z?7$IUk;Pbsi}^?7tuo%?F{ejz_fnbXl5xzllV1G*@W>os^Jm6KCMV~ABWNC8X4f8D zO%uzu(XhQ(W8rlX{TvgWQ``1 zqg+p0g>F?@XOY;mvvp8#k@8rcr<*j?e>vy#9vF17Wn5nk}jFY!B zwI0i`rm6HcQt&O$7EgpgFVf}K11@>qMCl4VHA(7YB8W` z6g+^%2$QIjiEd>6&L9}_`jphSJefqkXZ*a^t0FOy+0xh!ieZmfg4FFxK`{dr(o(zb-B9b(7`|X5qChd6a`O zEU+LwRwzj*pYbdko@xLblJCs#%}o=@7V%oeZ}r_~?D4hJ;Q*dZP>kSoPFrNa09j&5 zfv=r;xBo!~# zv^zasJ9w`-G%!q;0yScxnj=*YPqe(L@Zx)wCel2=cW>ssUs}3!G2A3jS%ehh6f3{p z%y4yDKz?B9=ULIN6|cUlphXkDqbhtRXo8YeWe4F=Pu^s?F(Th1YkpkRG_5K0DGc*k zMQ0wnZ4_W^_i@6m(i8scN^r>8tn3VB@M`+LhI0lt9`6MzHCV&mo`J>pCg|# zJ;tlAUm|F+L_JH!W-Anunj&@hc$4;i&I>1G&>NvV!RAlVmtUdu$nBzw%XiYxrrjvz zB%Ygv_?!0qN-O^WlZJp}x$3ce<7o3e^|*O88?{y{SgOS|4q6A~e&56KHF8WS)8Bt5 zJcXk9mrc|B?X1i-4PVqUMpTtZnOwI9O3|B>SA2mMTVMctlLZttr6>UQ$t!4}*KNE9 zY*j|`#tWNQww^VX87i)hDhNAJ;#Kp9p8o(ZJi+;Gtf!lNn9llaav5%{Ma%Ev=$;c^uJ3{fF9YHU~5idN41`y+h7&-}#s8T9kUD!73st z9Al2)plK0&6?tGXH@W~F8LavSgRkA$OQ=SY>J}d#?%0YFJ|$oe#Etxo@ZgkL2`YJK z^8WzKK31CcZ5jr*`um9|hnpDr3jKs6s&)O5fCQE?`Mvp7rTN!MkorM&i)AfiayB99 zuxfp!_QsaqD4#Ff>TiE(tXxVpjSk*%Bu>8yMQlL`K6QWiER~bhhS5fA8W)k%LYH2) z^`KeVpQ2mXo7`AlJ#PeP{jO8%GC=00Fe0fM^r!NPm{FI zDQcQum!P?Lu4aNGu1;9`T-=Ht730NzEFc7cB*U zdiLpZqTV$OPYBv>4*Y*(BVA7D;SSIQMV`18s*-fVWQq#-X1n^K=Mq(uK=XC;e-VzXUZB%YEbFd&!Fp8{$J28?i|}D zphDbyQ~+~7v&4Kq>f}V|>;#c4VDls=`d|FxznGz(-u=A8Wiv#cy}zvql}fk7TZwV| zUl%MFDRT^n1Ce7Ihm-u#=Z#+TP}ITtt$;Rmx0Y7GMK_?t6UUa{>l~2-mnI@a4)!JG zeL4?L{yj$AneE@wj^Wx`hF^rl1ZISfwUPvn?PD$Z8u%tUZ<2JqQfU=+69h`-U7FtE z&@kU~%Nz0^>5vHvY&?si+-g?VHXdqTRJeVs(;#9;LGxxOZTXk- zvs}>i^QA~er7J{bX-H0N7H3!$9k(8 z54##Ye)Ix{jA|B_LJ8wUTeyVLM{#0+<$nq*)m2YL5O(w1C3q?Uu zzA0GM2a_LwcEYN1OHxff9)k)TRLX&0?E7M_Fq2h1I{oq-sE&d~{10=1-!M)?XoS#3x^ z&F{;fD0y#2chmIESc}$B*4lFxwdEM9wDF&Z_I}kHC$xIg0~0QsObG_1aiqiLttZLa zrLUG}oIU;Y)=f3*MhNDylt2RVU*>EkQ6ppO{&Nut1Gw3m`OEVbTRjHD$)A?mZRNhR zI1sh8mXbv*QBsCV5TrGKZjFc{BKf3)Ex9UQ>E2rMKbEa7y!EWibu|k#x;C9R2`(6# zH#96IobUU_cj1O2M|0^x;kxG5hxyaw$tQ+wGeN)8^aLU)@1nDa@Op+E=1Cud@%uxI zwnWy?>MzUfi5?*=+kVfc7Y+XaSLTBY-lg(P ze4FRbEcq7gbU|z89cN$FP&12&+nk0V%vvb!UN-1k?ES7dcdI7Q2(kdLlQZ(y=Z}{) z`}^%WOFP{fO+6W|=hRX-p^T2s>m#bSv+=|Zol|>XN0s?kRj?j@);z~Go~h>9qPX<5 z->Jd%h=LLJ%aS4rg#Pb~f0dDyUga?cwhv;qm-ACrxr$YW!$i}|e)1cRbKUxTbo9uH z8-M0(Oo8M-(;^`M01^KHO3ZF=Z7i)Cd)d+`Adi&O$iWl=)rls6VFJ=kG0!e}`oqk+ zwAPwUt<2T|Ul*Y07Rbl+$c%kTMg%EHrLXTBdi*1fK1vxfgnfvj(Cm768se;D&pO_j zq-YOj)`I3szw}E@H57jONw(k=cHXbY_HfsFFT0z^e=~faCzhtr^=pPn<<^=#E6fwQ zD{mYPEDos>pYGyCg^_t5vG%ec6_(Et{MplBv-3pbN{&;YPUZCJ4Mn?(d|rcnhf4m^ zVpMmqsbeh)w!kwKpdiq#I)T!>w!%`>YESO>pdC9N$9xL<$MXA9j?c;3ZkMN6TIv?* zYKL0U9X%~YnDv%8<>Dq^^H#zDuJjUbx#NGD-e1#X*W~{I4}R|6RGUznOO*t7mh!tO znkSF#Y@kYu{`=k8g;bxA5zVT(G!8w5NPkpeyi}_&_zUjw*$^ zg5Kd8IU*8ABGJ*8l8|<#F)I0s^TYCne=S_i=HD$Ai%piRdv6gnkC)nF2HuJ2!z0N^ zw8!#?^JmQxX$b|jr`I6T08K*GK{87ej!GMUi~HJ^{nLCLRedko<2zt>diC6XRs6!! zE$;N&pF>yE+&mH=g67^)`x2q}*TI#r5!}cgh1$=MH4SG@w7!zzbl*2xp<$?4mPndK z+zA$(rHJubql_NquJzta^R}-(v2*2*HCv^gziOgLrHkQ)>KfD3gOTQG`(yTUNDSdh z@}+&o21!Sn^$V>(MYx{E)=RtTh=$fAQs2Fh@kTp}B9`YPeLTIqgiw(}jkx@o%Qys%ugp(3*+XNMvv zr6j6yTKq{HqO6l@c2Tr!f#MPckj6NZx%R?#Kp!-RM{Pbm zZS8Ihw)V4n(A-84O(TI?MF^q&<9(iA5Bk{JNG!8P(eAY?Sg$N@ZePq=1%$U35Tfu% z65i!jD{`yHi|sVhSM6hGy=%#m`JyX-Ip}_9^F5G`R2F)Bk+ZyJD#+-|QlYV&G z`I;b!ql8&ym!S-hn2Pl3+_?|(aFe=$v)HG$ww5-xm@JX7_@jCdM}Y^f6}QeG^O4_} zK3i)9@@|s^Qe8zV&3QCSAEg%xjtW%&0C`jKZSdjY1Kz~QljOm)FEx3O%zE*X%TgMB zsMAu;{`*j46}7l3IdCC}6(je2z9z;bjgcW9sHOcCqFF_x&#dYiobwY6lv)+!Qzth2 zC7_N~avQ<^EQuz$sE+)RI)|JrF62!&NYdt)R<;}yOg1kMrckmlpVPUmLakY-{{ZD+ zAhPD|Z^^!Bu+lB{dmD-FwT))vJ+7IfJd)YRz*a?+E4Rh54ZGpoZdYT;gEpmRw^vPd zZE^lBYq3Zai+dVH^Se@R+OkjPp$*gQrw z<;X80e$N)bK^(#PA_6@K`Jw*+!(Wz{S23oa<)1N3>}s%M<3=R(ITMWYJYVTq z_@L|zf73CaF!?sp$!{gM)3u8}MNOPHaYhtW^mY<*-^3;X8Fac&9D11Fy(EIe&N@1^ z#1mZE2LLzK=43nWt00Z5^fpeX-6V0tzCU6wLb>y0ywjzH#;tE=u34k9GOF_={iRk_ zsb2XB0um(?%(E}dTT5H-Dcjvcr1^+l+eoc0r>v(al~{2qBrM!ivG0#f(ma{p<&>UT z)N~Id>GE4meX9DGuqC~@3mj`F5jEVjsSOlnku^DU!9tP^ntds23PB8U#*6}vATg-` zc$_IoJo)8#e9PtAojBGzl08d1fN0TAAH^GjHxyy}II2teOXqL#CW|$Op%H^#(B%4- ztpk;*mOqEo0;KSghp78pu&8C)t%araq_$TmvRllhB#3}&4##7PrG7^8wbz$)f6-H3 zHSN4Ixw3gTbb!#TWd7G592>68oDiS@F-qV#l1}ySimAyWm7^LD51tUK7BIwe8xDux z7ASzU1Ou_a$!I)5sRUR1aaG}g6|Tnut>Ba+k)agp;e}uS()CU%wD3KAe-VneRU350 zTB3BP;fl66ovG6mcHS7Pi4@#>Vy>Xvbj47YNTq;kFmA+G_2E`O=LkH^`V8>-VQte@ zl8BPrmPAEhYT%%6jelosJeZJ65Ys;?^=%)^x7SuWm)AV;et~7zFDoNP584qCLaM*8 zG6L?(NZNx7)_><6{MfG!yKSxwXUwbc%r#UJ+qy8J1DeRoO6~TtLPxIX;Q(#3E7FCB z<-d^cwU0Atx_yP;BG(Yr(l9QF!5AcUL;C)76TBP75yd_`hT>Rx0|*nFhKB1Nn{Sugxzx9WE&0NbPTj zCD5%NN0W^~2JI|9m)3H7{gma5wjT5i%Mv%>N?6fC5Q2>!-73Fkn24m8%U8NSp<%^tpqkmI9MNS)Ldbd* z<~RA^1xkcbfapj(x)M5lIH`S|q4_rVTGI5T)@bEke=Y*6g&&YWmWE`l7``vPB_5!f1zAulx>7pC&cZ_I&GMrRo=}d2?w1 zmK!=efDVe}fJ)P*-yiI*4osQP&PT zsT)4v(eEO8j2BtUoL)Nep+iDK-CZE>uIkvOV(p#_Ui94 zvvK{zyahO`{BT$H*Zph&(j^jJ-}znTohDr_!^{g6+&Y|)7;c{IdRG#aH2wO3o}(}9 zyDmL#H1s4=7Ml(Jo$^Y=e=t0uKDA{P{+3qX%o=M6wClzATC2H<*aF_1gJxU`c`@%K zern07YOCeXGilQ4TKO!9r616jk5e1BTs8_f4@;op7K6Phzf4lc#f-eI`c<&s%1 z=7Z|c79g#<_b}~L=hd(gy1bY3T6FRUmy*XtoZfkxRWhsU*N&}tmgw?jN zYzY)u7jTrP?*7LtF&nIiu1$Fd^2c2By_Suy#i>K5$)>$5?b4y$mO<-I{ST=9+xD^s z%OENAUWNH}plLd`v#MLgS@q5zURI$}P!K>`e%B^ut{UBy?4#ws%I_;^5bBn8w&GhY zT1JxQ+EA?+3;^`hP<$Wc;sPx`wa|2n3oCmoD@dWXwf^EYRRTJ6;weCP!@{F=)Rbj{58!QYWd5zdkvH3UT4<=|j z{->?pokLN)f^VzbUwTgJ>~Ee=*~RFeFXxNr{caM>d@pZ9+rFlzGT6Px4|B zt{)8bA!9I3z@Rn#e@4~3!)xU23eWr_reBaQHEE$}uP%85Ln|IKIFMs&yuycr%fyVRwBos+ObwkX__e%S9MUts_lZL2OxnslJ-w8eo%f|!>6J}q*>}n z=aXMuM;*knvu;?(;PS3Vht0Qc<~`=W`NmHp>w1%FFueLuWmWp6iopyZsOl6(Pb1$Q z)d!`2&M|p+OS~6ae!Ht$T=6QiLo7(ZFrgI@Vl5OMAN=Cilx-)D<_&99hU62%WReg; zrFJ4N`0w7d5VL>ID0yadcavJwWRUb}8YUl4?(sZb>I6qb1b_31{{U8;OKYvGM?wl+ zTSYMTG+|1NL6Gi5q6%eu`2(n1>9#i7NYZAyflA%Ub72Vez9LYPsz^M393#wM%?3Ti zZ2th3znW|1`~4m(4FxT=2%0I;9%K|Eft5mW1bnf-FSMXQ_x*u5{Dl0Io5+z}-|GyM zYj;(J9wsjwP}h+PN}~epPG9P-Mj-Pok7h{C2P*iU`6XBouNY$!q5=(4+w}W=CZSg9qfd=P)y8%}>#~>A; z7^P`NE$NQlID{@$6{jCUi0uEMUVr%n7ZR)HmIMGuB5?fZ|T6;hf$LbTrqDxz31D^5zo z3L6r7e+4%^h6+u#Za9(;P%3^{X$&v(KUealu9FOYXVaek%HmC-SRUX8L0Yn)ZyacK zK_qev63_FaNwK#58Rai3-b=s*wuvAxMN_Z`kW!=Q!@~j90M18}F7L{pnZA0CLFP-Z z@aB{N^z5uzWtGXHtGg)UPi!1Vpic*RN7;YQKmJ`qVaVMOxLU{bAKqT(l<)8WPs{ zNz(2vt}HEMhHLo@*N%WGl0&&>J=+>ht=0Ugpleqa*BYgaH*aQnTePdlt9XjwBGejS z{{Wqzl~#Un^0R$L2&2}l0ecxJ0V)T@5pU&j{{Rig0SfsN!^nPRy16h#rp|pC))}M` zwGo+u@Au&1PYHdRvH7P%Iz6?mvg#Tfu*Ge45ZYK8lrnGj*T*G$FySe-o8+B3!s}8n zh8lLJ37=0iFo_>&8CSQd`*_nWo@K9oPDN$r5qIUyEg-O-H?h99467Wl$bkB^8}e5a z#;FF&f0kZJ^KOmj2=xn_B#PGJ*xKq0NEMn7?&nqS>L(Pg8&Mi(Bg%Tlo#*(qtrA3w zNxu#HcFv#%ln;V+9ppb{vE;RE-J=YJfgrbj_*I~kUMjWj4l3m&y$IX^inj=VSdz3% zRTVwFGbl$@UNFqkI z8Wx=j^W`kx52-Kmg?8os#{oO<$S99;d*pA*xgz|kvC%cOaVkvLcNS!V81iOVTl|An zfu!SVdYcK82JAHx>X;BCT7wx?4zT>FP9{-lvtmu#*e0Xht`d_%Or=? z;K~Oh>D5!0`8g0mn3vE$^N&kmHB*kw}c3fLi{}!w`{gSpW^Y)SA-@ zT9a+S-@X-6D6}MkPf$8BU#kIDp#`xIXw5<-eH!0FoMip0%j;9Ya;R zw-CkYMQa#S7^dZiFWNQ4m87Q6{&922vFQzCaV+;2CB09s8Z3gnz8$h6K5VT!@-O7B zgXLA8E)idpes(uA#=fdl9!f~S@}&R{uU(VKUQW4=Rhvk*kW28($}#Z|e0V~5ig#tF+gV#fYi%0EZwLz% zYA6*)Kn6;XtmJMFTu`PKl%S=50fkme!0}h9QffX!{k&CbE2$MVLMubp5~`$@T66@^ zA8b{0OF$Z*PkdEab?PxzffY0xlUib`)MXU{zSt79?^>E-hP_4vRE|~Y>@ceGU6gSk zQ0{OgK&w2PH?=;DC|=6Z$4%G@@81Hf^*~yR)|4aP3acR872n6_fhxv>Vc!C*laiq$ zsKs24>?#(%8{(_?@ZS|`vQ+Fi_VLAE|J3zPD(qF*tE-B-xU09PP4QQ6PXmgy3s-Ts zjw;i*1K$v;0SeHOL)(71P~rjDk9v2)m5e|=D8%%|4q~ldgdV58a4N!zJ{kolq3%u^ zRi9_AO3?lIs?!5V!{HDRWh$3ZVV_kr_U6( z6|@l+XroklTbuC!5@-hgI5B)6TL+{Qv#{D-mJYk3iQQS z0JIFt*Y>chN}!YOXt=5&kf8`SQMUg8*^0RP3Vg9uihz>Gzg$&TAf?9p_ZSka31Vrm z7^)UXzkIvan~~EB7swbO00Um$KYj&h@+(75U5znTx-j=YEGmjh2j@1!?zP+YyH^!jQOkU>Lgi7&6TNr&U`uD>VgUGQz7=Sq z72B_BU_u@!+O%Lp4*^J26@sidg96=l}pyBGCTq`_W6b5k<(1ONhdTnh-8@5pdXI$ zDF8qVD9gRo{j_q@61FzsJh+gZ0j62 zLssi4B;Ba$Y&-7po|4!XpE5Kn5{~`ye?27k!zEow{++sphB*TXS zjLO^6wEc45eK-7ANL-)yr2)IC0`+1o)D$H-m5RA{yrk*d7wtAVi{7|f=)VG)87%Kxvizv8?vc=Lf;iHK_)Ywl?Ppceq*g+`KtXf7!e#rrYRE-A{uF%>Fe1i8ww5amy89h9rK_*+0$)Vp`pU-$cmjeL5*?iliHQb^8X7Lb)pOrC z=Sqe2^0{t^bEEe+xbN(GiPki?wjyHN#dp(nm?LG1*>5{A z0qBhsCJ<>E;d8!G6HhJ}dmB}Em$rR(%fBQk6YH-m21O$Y%;C}9~=9*={AJ*`o?v`H`v5Xo9}yP3!{ZU zJ-quF((;>)V8tg^4yulOZ~_^~F1dvDqpGTEb4^VRJwy$=>vtr@9!uIN8ikMxCbwDl z`o^QD*D5(j{V>Z3Zc!wtG*vr4JuJpzF&ik8MO5CSIY;AZ`SwQH`>f@ zZzl|954}jGiSV!=+i4TNWi`JA9~zOR>lSi|UV zc9>(uMIEWsWrsqEfXLuO)qNoo-*xXcl<)ym@$NT1ojwIGd5@ucp-Xqm#Z^_+4o0Zb zOyJ@)7R}yIi`9lrwubsAEvt^Xyq1GyZEGImNj@jP@Eo0;^=LkA!9AE@fUkEVARYMq z^=vxjfkBgb%R=Lg)v-sW^Vhg$@1+WKS^_GcyFERwUIgG^;gjxdio@rL1i}%yp4XY` zJL^1lNwqb!MTs4q_%Fnd_a^fL_F;=x0xJh&Pxn`co@{`DnO|A;vHvu0JU>0TxaFYo z{zQSqKC>V$s_nDzo&T9l_*-qK%A&V~O^%%icz{7MG0*F2 zLTHm5{d0*6Xje{vF+b$xzRlGCuxzQ;tVa}H`W}`qvV|OQ*^)t>-=S5Oq_t*Qm1q1+lx;Z5_xrd0lJR})+n`|N9>~l6JUp>`Xr$B!DF&o`^CJUl#g zoQN_fZH&t3lX)Un75n+V8%z4NCS>}0dM|6J(z3D$cqt{v{%GL0q0$!ru!Pp`GpDl(HO*@cb{Srx9?(X+yXXrBfM~dELcv; z;@1UrM|7!DhM)mM(C@mNA6JhXh|p}l@Mxt40WM?#^v9oH7-ph=*w{j=b z)A!X}L!0RJ81QazEmO~kXyuxPE}KvIfM6qMQuob@>$=xbWkrE@bl^5Mt(t?w;otL+ z*T+rZR&VGS0Pc|3uNnSqz@9=HA1Ka`b}Sgqj% z{|%R~)crWJH<25TBk?cUi}ND@+f7<9KYf+h?V4vFf8gC;ZIO(r`uz>oe&)bml`HG+ za7n_U#;0+^He5gK!<%Bu9q{O@(itmX9L*nB{>Ab1-W@OciY@-UXC4_>+l55Y$wuZ$ zxNdX@;7|%{_1KORUk{+rlv*nQFWIHVW}^8;_)N?2-L<_a~PKln=Z~bbrK6N0BTR?Dd{NcF<%1k(0RT4S7Q1 z9VWkl4wAe5e!_wLdtg&7TEriu>F#OAtKQuM2n;ON*mjaNJvL_ zW248f_MJqEG@VmS&5ZM~&zV_U2+vzYPrqfsX43*SOL9q^<5lGjOi*!F*r((Qxo(^e zMdDEGJU_cMrP+VIoFKe~nyq*mW?Hvx_#Y3htgPr5!0L-py+vrCE*iM3MHkSfXP0{Z z2hzx5RQ9O4dFr4b7TpJkFp>QR2Llf>{2bu7WhAG9_3v&JJw2+Xj|)}(vN#fqH0sR#H!rHuU$^IV zG$F}R2Y1PU>D$QU05}dfH$}zafuMlfT2)5;8mJQ^KH6E#L5i*6i~!dlR1b)RA+FP$ zQ61)xHu#M1UPD64Hrp48Qwa^I2H%4Xh;ENw5ny*I&eGlI7yS*EonbkZwe#4&5 zoLka%cE1}*!)}i)I8q+{x;J28w9xCn0_c0Y?z;&~pE=kvq)X0oT9?sqg5hbuLz%8& zw-hBt_OEV$h1f5KNiLd#CY70-xO4kpT3)9gWBSBjpJyMSyk4i8ArEuMQ&O)_9QpbA z0ofg&qm2Mc#A!W!{c@%>W$ymV(L*m$C^SP(H{@p7-u!98Rih_IDV5)mxQ+=lRm;_u z4PC2!kI!hxi-b8Gr-qcqMJk!0o_IS91G|UbOQyG9?yvS=wK8`XkuZoq2yJ{~pkX7h zXbQ0en68H+6A-02lW8&cIiiki3X76>WJkEu26-_}&D-66TWd;O&kwb(yPp{l zi}}h%i0;jTkG8Ya_agXc8KgdUQkqByD?d`MlWQG9$naz(!=5Qf%j58GtGcCzqbQr{ z=|vw;n(BHk$2j`h{I2%CI^>K!-)?FussY)C4YU?sC%+nGf71pwwkx_to8ALGkS=ZT zHN+w3CxNE;#YnDe?|q&_4h`RxKG4Oe{IOX;+Ls?PPt0xd;bA?{Zqn{wJSpFHwcl0m z)w&id;WeY{r51Q<ievg{J*z_DBnY-gp>S|s4cC4d*^?N))^`<2!%aCkf zfgkSoQ5ENXn$D`vWv?)aQ@O0(!vveTAbdo|H~pUHqi=ODIAAKd`Rb~Vl;HB?&QWN0 z;JpX8+&^B=etQ3-kB*L-UH5yru1T44OFqUSkk+qYkvo0};EVQt$yTfpHRWzRwAwEh3KHT~aZ@U*0u$X^=XS2Jo-p|`E^ zkzgWp>~+X4yOU%1D9+8UPjQ*QWIN;(s-$}Hl4APgmRG{IM@QmFSL}=8Tr(-&0*s#Q z)b;(2JYQTilEbm5%6t;>t7AFmZ*u*$B%Mg}8AE}kXL9sa+14--hV=Ih9&gWG{r`(# zv*r)l+bfQBg2>+y->)b)s!7ul$7LXgzg^f9{6#cHGD=&VPGCPe1NZQjsHAx=8FQ=`Fjw_8+E6yH-jtPx;?%o zMQ(YtkIhZK192bB!UrsNVQ}dFAR3QB!?4T8`2a@DvQXpz#9kR@dL~@d2pjp#rm+or z@%OY)D)$$7_pmiKv%mnmUZ2yIHuX6ttj{tR7QCfW7vBliC~AhYiUtk#H$+>O)Mw&k5tBZ?E zCh{0sIwzbKFjAnK|ACc?xL%RtXjj-~Q?=}!dZ;w5slL7)<+eW&Q0%_*GhZAAymW+I zSDG0-u^4wpFyQX(nepKoImeH_&U_iyl~3^>w&|=*J{?|sZNsztU2EE9Bq}DB7CdWP zW|#vA0Ls8`7#R7q7)!(veBE;%Gw}eMn3Y=-+Fbax&m#Am!v0)*HKu8F)JPOrUdUv|6JF*2>g#9+h~jx8 z2#-LO=|3VCp?=`tV9iXUsGnVpLO>1gwzPEprFu8mANVslT1jtV9gt)!K?HQ(XR-1k zg9Sjoc-kmO(GQGmj!6G_^4JcuLe+7w<_M;>-dCVtuDl`N+10byhZXV`o zsGc?AQ2?0Rm?+M1|!Ui=BoBn~oOH9K1F+Ne3upUUWs@F7OwOa7?M?6kK8PmhEm zYZzoXet2guO;d6d!5Lo8kYx(M-JK8Az_5X5O}BmhZlR)iHADehc1jFQbUcEz0A*1rCHO!d@vgomw*RlmFw*>Cf3RRVmLF)jk7ccQat*v)?Za z;v0N_BCx@;zep`+>qhmQ(A)&iw`Fw9hNuejckirVG`wAtyHiRH5W8?!SRbflk=F-( zyYv+03(=6gs;-d0_1zqXUbjy=6#yMCso9!a3AiH+G_?3J|JYp4Rhg$D_cl>MzjjGe zhm@O--Uf^!5{s9IM7br@ZqE+c^8XlPO{%sd8L|(_t!7m$1n%C^o_vv8|Ip849`By+ z`)`-JT_WUWmW1YlE_iq513YcS3#dNI`J%NN4h@J#^o8WfY3a}HPllm%hCPtHvxn_?3JH*Zl#RK1T?(GC;|laY?d*uSeR?mCeZZONcW{z+ou zmD$dk`{Gme`l3rbDA>7-Lw9zb7f?ONV^51iCwv9>Fbq{jD5sK$<$s=rdt_Ifyedg* z_jaR&6oiZS$iq#Z)W39%y@23kKII|03MoSNgo9J?yzDW>Mj2+}d?q1}=18APz$Z+9 z>OdhA_i*7dtkQu4Yf=V_eXRZdQJ#u_x{dKaSks+hD`HCQix?L^ewufi(L{)Y|K74& z(;GSgef=w=?P54_8Iav*weh*9!NiYdVb^`t` zdpKg62rh;6-GKB(3EEkUHqXAs`-2QwxA+IZ?EyIXjUYYJ({$=U{Vg&Kb5+_2X=@h& z*Wc=?d;hE#idPBzxnt+aA3YhAo$ikHRSKz}0vZ3(crE!@G@nW3jCk(I)&_b<}Rjs7$J>GgMUtE6joG-b?Q0%W&m^ zH>oBj%pHq)Jw8)v`wa2$Fbbf+#KiP2z&JNYrHl|z5zW7uBh|-eRY@Mr#^Nio;rK}T z`CNo4Tm2;BE5UD6a*^2~^!l(!O9d}ep7nP3FR^OniTe}lFg;1GG>KeL#kkQXW)ivw zYv%WE>R{8w9c-8D$R21hvJg60u~zm~pi>{+qVYcpqf22T|Duo2`t*%V&~c+naQ@ zv|L8RMN|uW?hyT`Mn>hxYSzdqRtNCLa=ZHwOiE^v2!H!$-gtYZd+|`n*Iq;nL#Afu zVc?d_2AfC6WR6yowdyvTJ|acYBq(bagpY z&O~lEBKy!Vj?HO_wz(EGIWDdV$MfFDv*Gdaai)LtG}C3Ls9;8zvcziT6M4Jh53*;s zx#53x<1J94Q6@{O+V}`{$tfCe7q2sj(T18HM4P~s zHIeckE82HO*cw_C7Qo}K#QJ%YUFELI=hisabis&offx+w%vCxV)g{zvJ<)@j-s$V> z<70mgpL}C^@90@Q=eiL$`C;93-5Gelbp1jC&|A^-S7W{p+MlF)EcE|)q1st{XxK@w zlb^<=VG~6%h3&e;9QHmi_WiGGRoeJVc#e|<>c1Rg8uWI&;o{ zIN|U=wy8cRAhEPe2-f_`BSuQYolV88fbxq+V@tNtt)Stro%yVh=*8c`&$mu1%??c9 zNthDuWp8g^H{aKDj0VO9; zY<03Bf_7){ZeWNn-_<0}Vy)@(Y#dLmK%>>c%=v~gM#sFQm{CRlx0#alW4_1G@e|Y| zaf8A_b8()*qnPEC+sM+Bxq{(h{u@?oVTeEX;3_9kwqWlX}7mz_BehXa=W_84PS4pou2tYASZfwM?&%*=4fO9BQbLH zF!hoQOsA)(N3b{XIN3e>-T{I&Ioi_Noue4793+v^89)&Zi*{GdiaBLHy$Kl!>_-!z z`axtJAHM6;J3e(C)84>k4yK0pAD-?mt|#@CMYeOdB7^S-usw8Rg*zHIP-U4%-_Tg` zf$9vK9umq_v$$>c*5&5ky?d9cR52H6-m?Z1O*xetIS+G~y}i7?E=q#Sy_j4=vv zIa|D<4Do)rDxb*TfjKk!Fq_An5m6TP@1QdIE}nAY)X0nw=c~lh+I7LFlSMA$#i>H6 z*FJ)n@5JTvfxT~d^* z7X}A8I5_BStV|EBh#P+CE+^>q1fCvA%h zM1zp~mwo%DWBTuafoGHdTr6v8UN;L~<0p>G&m{TA5!0u#1ox7LXBiV4iXjx z+zC+M($aFhBM)22{lvt{2o!8WE?Md>z4r6IE8$55|GYv_zqG3Ac<o#T!oH!g zGh2PQJ~lY$q)w8f_xJS`qTz$97YH4N`sjQ{fOe-r+D@070)}+r3IiolluDP;{&+Yq zCMOY*nPI)=Pb^dNs`Q8ALWD5%nNnjWVQSv1eZb9$8OD~hFy$FKBK)BuP0;-9C|-_9 z6r>|oy(tkg3U^4!yZHGKy&XQGeRz3Mb^#;bGfG;FX`<2FJLEF(kG~Znf}DOF zX-v>BRVmP}S#EgGKMQ#IG`PaZuaTCeWy!DAEAS<~3a|DSHWf7GXm*iQ^^ zw+Qzg(h&pkh5MDM#@xmod>JEkzR}aQOmsbhbN6SLpuS1gW5dO2i>uJ-eruGa@F^sx z{1kEe-8=j^$DGA)k^_>={a6BPt0}PUJMTtmt0Kt-gc*#__U0(wREHdYNs=@|D&inS zKm1Q&nK31`@?M>d{u&pJP2VIty!c7H_kKo^#;>EYvXbDh!G7<@%>~_+NwQykA)AwG z+AV7TZx#TBCUEPlwzgJX&Z{0K9#J5k!gP|IAzo`20$N(!%MXq_wu9)jB%cUlV_63m zqD3KU-rUBmPIP!JnHd>OHPhmWAK~hM7fTaT0rdp^i+kneNi;$KQlwhi+I-`{(omMa z29J6BW^K&^=UpK$Plc^*Z6SzT76Rm_@X5i|yfdC7U#9Jn@0sH<=t=rakS|J{S^j3g zj3~SP$^2s`8VARy>b~0B<8{4 zxUR}0@`dlLU$nw%m;cnu^Wzfy2TbJf{MeFm*g?$<_1+gS_mkw`L3jxnzxDk}Jy4nO!9fG}ny!=8^6T%PsMFdlqwaR{2~wm#@YQ-rP!ulkhc z;E_cZ1fMhv2e-g9N8jiVA*_T)s8K_Qiqw90APKr)=Axy8@5i7U`uMdU43mST>T}yk zTt@%m&d$zE<>tv^U#UMD zEM5Pb)0FUjjiL$uYYzm#R4rphd}WEJzeCS&{U)J4CFY3PiozI6i-Q@EZ8*fsh2CE-5W-mK5B%mv5 zOZ!1zaV$0u-L4A7ej-4tZMYMGHbG%SXIpw zZ|dib?`h=pmHRUD59T;dpKFHnIRbFhM{SXR_j*X4kh!^nkO3RW*^E8OS+dQlZ89M!L^%Cv5uKW@A+HF0Yh=7@e z(;x4=+8W&c=_0L90MnWUPcSPz{do!T0vFJf^``gU;&jEAggfv6 zR>z%DrU?@i2r6||q$s&}z7hi@#=j<@C|s>>0Wd>@C5g-bUr26lu9)0GTVI3wqjend zvp98%do7uXi5^LkWRRkTe!VW2dL5 zdyO`p1$jr=40B-QLJz-dZSvugPfx+`CDI54DH#1+UlO{JGsV3YJ z4q3Rlxe>tgW{;iKd-ra(PA=&K{7Ej4kC<$2O6Zppsy|~slc|{<4>(SaGUcL(vVbrSW5|=aM z9a6^%BQFC)?WeJk(TXq3g|VL7gPCzbPZvL7y(tNj%hlRMB+Y{7J>HndNWTMPmHdf6 zUY*Yreo)#OsOQT{5`kMS{`l$Ep+{*3{x5jq*#;5%M7B(1WF+y z&g%#1@*f;V5W6t#-emEZyHKkxnF_#lSmJ8OLRM1_KNr!rU1jvBS7Y19bfbZjT5`?i z0ZD6^AL}!$qkI=6m%7wD<0LN}_kWJU{ojLf|Nnmzf8DJSM!uJ)y19=2Of~o>j~6cc zM@iyT3?LvNprqf>iwJWTA<;HAZ(7o;MGU=P$-x2$Z1DfAi`_hFBRx1byugfLTgPX1 zFaR#PHkZEBY;6urR7)Gvw;5|cl?3Fm+|<6_Mn*z4PBCGobmt5mfM=J8t4%09Uv-cG zpz?Wwqjdp`y@-~$(F$mHR`d#7X`Im(>kE2QgvKteB0vD-fV4^ z9BRX;HhnCfHWJ7HUpu2T5;^LlVm>Lkz~!Cv?sSSuX*H$_ZJwimbIYZ5zkpW)V@FOj zJ+#`WDtQz>1=URD_&rLQz8zpx|{EV;_lJ+3YWn_38u)=HuLcjI&#!7|qS6YAg-r>XoV%+~P!Fz8&zoB{T>$yhy@(lz*r35x{z%pjJO!}JZ*qEjXGP_OR=@rIs^V1)9_SU6HSxi41N z!{+=?97|8_HU}5>DGT2V8@oir_7kU0teeKbC(JJ$Y+Jtwiuxw{|9z`Vd9R6LL2e5i zh3Q?JSBt&om`5G|G?9_piTNOahlQ-AAQy@`aP3PEfb1qR`YCzmMoB?9@E>#+B0TMJ z^4I>F3L3qMMz7ZmE{y3CrF6(~e5mfgS7Ye+7e%&6CjTZ{vv=b9@(rKsTV2klWxbCM z6J)?ocv3WrWM}enjePc?GbD?j3!b2lQu(Zwdq##>)KY&=#$9Q=F0<@X7{C2l`y6WN zO3&=Hki71-$d9wl+}zNkayzhx@T z-Oc{9L?old2g1OY=npU_7l_7BvGV4A4n*sZhcqd_gO5$oh=kKktB$XF9Ta*IdGoK` z(?dwAjmP+ghQv8-wPvDn?+{f-Y_2v(-lmug&|@5B_{eN_)1$ReuhXrjSMPC9R27qD z%F1>`3VeaXZ2FYM3M`UjP)Gb2*uF>1leh4IU0am2@FRYCiG6XRj<%#YV~53@io*Md z>1JtvqzXDXvXP$(KBz~tj+fidS`q55ZE_&j-+%`-IS7_4COKfa?VdQIGINw?#sgn# zNrP5w^{l7b*U(4)_?<@tdKXs6pcNFhC()obx$Wk;j+SSlhjrvdM}Akx_m}^1H)?>V zM4$8{4dW*+c-B2lgPRO=fgvYA-p>kzr^JLtzy`SfSQ`O0OsozUH@M(fx7{t+JV&Pu z3`xr{p7d$lE6g5ZB=3~R39WG9p5{8xBP*(iBHKq_p#Xks;oT3`DEHVL5eO_L(< zX6ZZ~q1b~blHYe?`MESEFOHU;URisg3dAENrDY}t*H21Mt}NFASUvwBzR3lk4~y!l zl@)rtSrHs4g}R=Dh6b?@zhsXCs$4GL<^PTPJU{hs6IQ8EBft*sWGcdMdSBMaq;$X7 zh6mX3j9Qj=;}iUG<23TVnXhA?xg_A!;gzw#Sm<3ueD^Bx#CRN2iwiQqe2&7X&B~CD z-?BRM$GY{H9v#5-r?v-0B;G!LM^q~m$pyYDG>VNu1wD8@0-w_(yWq?87@mHqdi0zN zcrLFYMTzK^>^2-J>+qCI-wE4MTSLOh?YIve6Qz#|D_#}&o15W_81;pY;%DisCnu`J zNz(Qc|0Nfqw_rv5McKl}-fd>vefjDPFG)cl{LIeblpm`I=&CgGmz+UWU)f9~PUcT$ zQ>M)9g5GO_m|S#@nnORzJL~O!ALmX_?}sHYS8F}FbScmBU@#uQM4H+BDIi&ioyOzH z&oi2FStwgJY^6L9Rk5~%0{$if-ejjT^xhLcaS&_pBvLpf>7Tm{>5@ zC&{C;g@kd6S4$z*{nQ-C!>HVvGQew-YD*71$e}*uq2~BaT-%hUqJsu!js{qMepD<- z)AQ^|4t`UB^Hxa5CrU#&5x)8ed-zf2GAjGQmPVmtr&_}N-t7vmHZQ2Agr##3=BF|$ zUkkG23sqR1kY%B+thMZ|d8ZVueqR6aV-0z~#jr0ee}Rxn(y|(IBv}{qZ2k^f&Ct}6 z-(#-5-Gnb6R123b9sN(Y4c*Oa`oi9nS=od48|pfB!|JzN0XVk<=NTJeuCSu8b@yVZ zh@G8**5Bf6Fh^al!eZL`+j>~*m1X~#_j3J~MIE9nmwF}BJz@A3wCnBc_JuS?QDSYF<{pWwjfD3Z)>En|_26mQVoNLVKhhc*8B3nD^K=be{n3By`J0E~_wYGe zZb`}bl}sb5aVw37%!qviQkpo>P&{lZd>0?*!l;aW2g;CW%96W3DGR6c$XCVJz8@vY zBdV2hFCh}fUmo1Dx5R)6^#62a?Dn+or``9z79SMF@AG`>w5izTr-|KH^ScNBzJ=qK zOBtoG9wUkGA1BV>`BS zzbX6)Kc@7=HV(&o0JP^qpWj=ZxkT&7-<`f} zu72DgkL03D)(V;Rf~Ku|jKF#X>R(AovOS%6@_S;Wa*s6=c?5DcgjKi&?$;)x0?pvc zG8F(5Jp)J7`FqFQi=lovAD(G+u;f75ttVyroElm|Z#4YcJ*EpirW|8su{11#drLEy zH0s}tDbS{AkT8@CsW2bvz$GJC^3N)NW)yiRX#*uWVZ^+Q-bg0lbo;x1U(m=!-V;Yq zU*ICuUhFxHGUelB4BAv;l0=-AV?vQiE ztw{YwejY0p1po&RQ*k_)k;??nMwO#X$*ymRw6XTz1yCwm{ z7xeGnQp=1K6nek+*esIcQ016<+50iUQLqqi(`HwUKm~Dj5vzcO;dLvDOd&eB8j%tB zSZ()9$|i%s{*=CfYLx}Iy1&mrys!zE-MafnAn=W!F^$=R#yP*#jl<{OhvvuI)EkOz zf79VXfX)C8#2{wCv$jytsKgk)C|wt3Dg?#KFZ`r`9HJHsOqcjBS%`=nW%3$3TxLYk zcJAkRIQ8$-BRLSDl)B0!n2l&5eswowH^o`V?l^kJ3s%8hz>(M~IUbM9cQaG?i&*nV zM)0J#cKLcR)pxTbbFF378(Xq3Zf7t?rp5YbT;uV`U`79x4(pAeD#ih^Vn2-LNW2+5 z0Kp{_5=FvbhauKy80OmL-slaTER2gl;JgNmZoh7>yqy;rr%nA9k%J$Be~0?IONYf;;e}C)5E#ocxlCuj4_UM+3hlBeSf+A zLffB4$Ee~fKy&b`BbW(n2T%d;coWRlpT6~Zr@=1j8jGZ6D#^M0y)#9_cjzdj(pYT= zmlxOLwGZkKAB9pYB5hSBPbDjc5P$u2`4F6H)8RCj#T*%#=O&7mKwDx-EY3++5;ij= zNdPG8!%3rO>1W_6(|MrujPiYEkwvw)GfxshKx}q3f25;;NwD02GNlXxs~}~@KN|x; znp0oQYCD^4vt1{3p`K-pAvB}3U{RrGOoz5kTtP}9Jx_|X1DoDZo1OV(=RWi;LsA>O zLI$w_COqS97w`+N&q9Ehh>X9Hw6}V!+{CHSspZga)}%_m8nc9RC{sITJweQe-*c9| zeLj2nM9|4LO>HQdfvAPyXTH=$(>JwYD zA8GdJ`DwN=`o})me)6uxN{Na;e^%Envq|;X9E%nKU>k7j`1*|!P7_6zW$y!BU*oXs zso1g%y^dydCxN}1*@SEq9NZu1s&V>etN2~kKvAb z8;`lW5Bh`j(_}x+PJvPTREjo-N<{aazWXAP=fdm}fLF#}pZq|BWMgQa${1B~?%{2y z>ris+gb*0jb^_PKibAwJ?>+e|ps5Xx+C5_YBee4(?WYgb+O^cr;AiFz_nzBP=k4`P+MnfeBIVUJ2g9Pq+107-SoRhtISyjpNBgNO{^xWq!L2yPiLM zT~gH_Vxn}F_^V*QGwIuzb5jLy__NaywacJM3mbu)0)KpkEiD_WNI^ee)aD>%7NkrL z^`6Tmdt%brak0$kwhzsM0o;?>XZ?UCK3atq#*IWT8Z7`?Sbv3=#V3w?f`&~!P^xNpBH zJWEx2hsjaVuOt7bDeGP?(Oisz$0x<3YN5H;Kqxi;VU~sFFfEZ@Wpnc>FP3GW%jb{W zE`LiSb+Ep3s;XwHv3+N7+mIk!6q>i89GA}{`R|{8ITBIrUBrj{F*2RGq*nOa;2C=o zw(H#l5(z;*nl~iBiH3fUi2k6z-{HPtw0i7=1Ho~ta#asII=jKq6;^L?!rzQ0 z`}9r(1tqAMzjDGuQm>-;&2V>J*mqgs#}%z+uJ)b6g$*&Y9TzfdwThm7^r@bU;pVaPv#B9yQ zf>q^E$jJ#*K3cb6eG_t8!g}29L_r(19$^8J;vl$#JW~>9?im>mm?-AbMWkIq1>0Mx ztjEFzt@}~_)RYz879tAtXB|AreMyix;Edzd$kb=q*KzbMSNvcp3E9BrQ{l}!#Z z6T>5NAMEo|a87?X`B9J6j)rTfabtPjO)8_<*)=4+SCP6;Tjss1*n{Rq_{m01`pvdw zZs6F4)3(WXa8qr{C+y{f-qD@scu68h4wNxO;iqP`!Fq;F>s%p)U`JuTAFB-wZ$ouG z{_t-nx)4a4{T)eoeX=O#dHV9yCkUo)jQZ@6{pL~{x!@UYB(Cx1rHl4A50xrwzW_+S zZJDsrB$9J2x?dH=zxZ>t2(5b|iRC#E*2QVRr46L$NRjC7Q>ztio$fb--(P$mMn<33 zQRbugS?f`>Ht5MpJHEY|!R-`ecR1lhmx60(H>O8s8_uf;AVt4NfgiP(7m^Uo>HMW? zP@#i|NTDKx$WFVoSTvS(eF!Bvk5Dl3eXn3-uPw^1p}!bXdV>&X*eaQx#il5)CKup z%qAyMiLD}`1;XQp-0yDCWVk;~!meoK7b4tU>?@y2t7FjNSwbtq+S1^C_gDGi^7_$3 zThhMA@#fw)r&H#0txNjvNp|96R`I;U7d)_(M6d9y`=-PUujx^PZDG-r6aMio2Sk_23<%CZ8XKV!$RC;vLM+B%tGBhOw*W`=F)Jn3w!{7I_L(ajG4aMu3&UVyX! zcekBbrgaqG+HgI^18Z*asLX>@byJKHm7ph=T38WQNFVI+L3>oHUD5vT;{e_tM@#RR@1tpoxN(VavHRJKNO8y!et)Ck1< z?Uw6IvI%&48uo?ADkLqb&HZZF{>)OlG&dSFDctw|4z+j}(nOms-WD|Onz=S7VzaO> z_K5u_o?j#ubhQfg7CL+1b=yNiBjD}Kf-u22>dt%I^A@HVo2f@;>SJoy{1ocM_L}uF9tzTNV^8|sz8o;lQJZV0ASDpO~vCanGM=TUzl_OWlYyZxrh^Iata z>M9+L;RIAt*G9pufy+%2FR62N-Ld`EA1mburS(d!rbquLS`MZ06+=dy<*p7D44Si` z6nPt(Lag$HYpXlBeiu_qYkD%?K}2aH(k*|W&jg^y4wG-a`bYlS)LCZZr=RRkc6Ds8 z8+F20Ns*XLwg4d$C(%B$EHX<|xsHt*i?=CeQ36P@b-?2}}r z13-HDvrBz#X+uK;op|B|>7f>kHIX!8+~mt|jaJqj=jJ=T^1lfVJJj>_ zBkw{e-PO|EviZH&h-f!5O)%npxzBJfsbDhd$DN$m`SI!(!?Ch|A3y1Wy9uOt!8Lfy zoiYF1oPEy8IYZug0&d?u?=#E6GE#}Qoo_AwMXIBDEr9)!taN}Vy=>_-rr(XvXho6% zsHUL@m^lidf{2C;8GqI{YDSKq0+FF~v6mSbC$N|HVmvCIykH?*n_s89+L{0)?EVLR z%>(o*9DL7D?qVWIA9nm{-5^UNv|`_qump{^jmZK3qfslj9fAu&tmQ1voSx`JCewfbhsBcC&|UXsJ*C z_WK20`?tRVU@wu>MzZ32^XFcF3n_t+Y-p({z}3iX({en3lhsgU(ztUjxo-S<-?&DS zBt@)v^15I#hrzuMf}W+t$p3BbAeU#LrxM-Cw#MB6x-1iLWCZ{K?*8}N&AWd3%QQ*U^v>@VedoOCH&>Td)t;RV z+OVt0g@pi!kQHnR{!eNuUia}B~3Mb^SWm|!`*h|V~x@FH1 zE1pQ`^qD1j3RDIqTK4TR(uqa@okWxZU@Skpz}06r0S+Pf;rGl~#UM?R|x{Ptt*0q1xz512M0PG^7W|EaSvr+Ko1DQ=O zK#-L{u%e`*=Hy^FS|g%QKQkw0IeVsX73hrSWUr z_s54!L*LHK2T4}C*fi72mo4k@iBSU~+nbQw1Q$FAs@(Up=e`Dhoze2Uj}`17W_IlQ zcr`P(SwSw1`yt=$GbM%o>_6@>hK!z&>}qTJ;JrUCxt>k4)7kxs@`xZfxDLug5%B4w z@9d12`zrttZ*AQA$?MPlLQf?=A)*6P=H~Z`=m7vpkwquWQM@nob#{99jxEXZ*9PYn zW_jJmJa@$udIfYJ*tu1Ux9=jNHe~iV&<{6xrQZYq0JL<{tQs;h*|>AlyDR^+^gC?o zU3rC|1o#C{yi}#TwlE(l|6l2JklM=f>`SAB2zxUdYn9X!v zA_L{Cz&usy5i=0-BJ%ilEz#Nh$?MC0o$PG=keT;MvfKelN-ZnE^7Z1r=kxj=X3A5g zQ~o(_b115L@@xnRPIt97b?n)+l9`*CxeGvg`SRsQrvL!Jz5n^IEUN*1$e0P;o8Euz zu^sE*yGLvYnd3x66_`_%-sVAU9Vwh+X-_uvN9b3M*y8?^n5W#H@v!oDQTgJFdNYmz(Zy4#+ZX#+SqBsZ!`f2o8VaUBd zxr>!RNFO}<#O^h(KKIMrn?HCAU{i?AQF-mPyS z(>Je;BstmJ4&nYH;8f#o6q65ZNI2G`#M_hna+wU5iA;C3HMVS7^E!aWjQU3!htU4^ zhzS4y-1Fn_vl{Dmpsqw(bpm0hS`nl-}-}*PHeaAe;h!+IDh>j008jw zAKl3nb;GqtX=T&OKRt6tSL=blI^YpGppp~fQ4f%cnfI(;@%-*}E1qTM-OSt~$!gp* zb-fQS!Mn%5J2$~~JwhIo>l}~9(;hwq0FJlr-`>1s%`42jA3!^ZQru6@U%v?e0Q~$v zZa1rjj7Z69VDH=iv+&wvcgH92Y!2;h_r)zX#Ui}@pR9dt+u#25IN1D@h?*o>={8MW z?+w=Pl@H(%bn=FJIa8ipCGyvwyFxg6#)(@8*gk}*Ysp=Id+7=L+K8lHC#)QG0ssI% z`}f<;%G%*6J)PS9*B2IjJDrSw>XiysP*n=ht7X^bRh!>_{z20;b^tg?veE@+?X%u| zUwBIS_{_^pc?EsMTt_iD=nj76{7B{lAOG#;t^=RGm$m&w{pR@(hyY~J!Cl6Xu_q_H z+M3s{dG)zl3|()9li_p0LT^>s*|c}d#@C(0iV8}@zh`ZECbFmo%BlmMFs24M7im#}+&{C#8Sai=Dm zc5i*_gV+A&762(1x^nI=>H09y(Yp78mlxlij(2V(qWzLAcQBCtELh)P19&izerC#* z#+3*6$fG%^BgHB6T1#{`ZF}o~{-0@R+brSkVz9ovpH=^W2><|?hHeZVePZI%jjR5+ z;q5>C5T=86a^ce~$qoJj`*S)&@HysD}{tduBkkm$!a#%#qA=&>7qv!DA9iBgl8Or{iKRiqugv?(y z^yH4ezVu-G-mPyi^FEN&PLh&Z_Uuvv12_h(QRKZp`DYGBO7z;1Cv<=K#tZlC+q&Ul z@(J{qrlGBW?Y9p$eY)v2BHBwtt&$`spFM1%ri=E(lcwEUUJ{+- zjJ;re(>s5Ba^ELwUk0!TK#L?RNz>2=_Qw(302dSK84z-u1J^k@YS7fv@hxxt_7{zt zRxY=QtX4@;6Q-dV17-J*m;eC4JwLkBEUg)w4wqK6y#Mmk-|cK}{Hs8U@Q!sWe!Km{ zca}2qE&$Dvq9#nU=cJClG6EL4HXU_ZhP;=C*~YK=_|LceP#L2OhfMg(5(bQ2}9RDyLYM<3i`=i-RUa!cXY-wjP(9bK6rWSU;p@^mh9ec~`n5O--(cu`A;_ zyZ3Qsq`EuzZhq(Y_Z{56@h_%nG!jv}tOnyC(w08G*u+sVlq0=>dwz6>dEG7F)zn}} zx6`U0d+7dwz45Mn0J6F1c|8qWJ&bKT@9J`9q*GmcK3e&^ZL3~=Tua7xF>{+FD_u$; zlrr?R@$8Z%jH6^IN5di>zW-N!TJn4tc0Y^%bBv&^`o*3Gu8vTyV@+M_+P`hXpSQ1m z?Hy{)AZEdaVDNscSQa7tEGT~8;CC5s>Dqxss40$|0~Q2$4Qcsiu(VzbN46>L{Sug?|U;Z zGfKeH(oVPJGSZ~56C1%TC>S(BT#T)SRhl#tglH0H=G{M=AZ}scd^&wE2lp76jkg6jMF@7xH-)=X}D!F_7oAohTeLU8Bd}3)-n{u{T zCga?ha!=2X_de9zXn=nvS2uykg9ryV3o1;)>?+w+gjBLGo@S0q0RR9100000006*% Z`~r^d@;-5*qr?CJ002ovPDHLkV1nY9{OSi=y~tXJ_YgBoaBsR0_<4M-Wc@$w51~Z?oB){r&ybeSLiu4u?aUnVF%rwY49M z*tWH`m4=6hNtWg8!oos)Zf@>FGMS9wvkwG{wz}c~?G_mA?(VLgn3%XcFfdTj*w|=T zSPGC{swB~5qC{LKolZxBAW%FWr*t|^LqkJ`_V#vbXJ@A!5#|xq73jpE8&Mpn5!7H} z)a&(L^!a?P&CSgQtJO+=zn^yACF$XVdlX!cP~^=990;V<3h1>Ii^Zt6ww792TFB{i z3W%y=b8|BhjYeJ2d;!f2JE+8uyAZ!QGBVQC*4Acbr>CcUN}Vz4qlKmTlh ze?QH}MR->xlZ2f)NE9V98bt*j^BjL;o6 z@P27&NkF+BqD1X(w_AcSg~O}JyG+N&pU{6q-oungyroGPP;&Wu(;w9joPf$QkZHUS%Nzzp;zSPsx#2XlO`7L|$B6 z+*)29o literal 0 HcmV?d00001 diff --git a/public/images/feed-balloon.png b/public/images/feed-balloon.png new file mode 100644 index 0000000000000000000000000000000000000000..23793908eb756c83cf654b1f6d9631300709833e GIT binary patch literal 723 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 literal 0 HcmV?d00001 diff --git a/public/images/interrogation.png b/public/images/interrogation.png new file mode 100755 index 0000000000000000000000000000000000000000..96e8675bc1de767628f0ce49ca1d053b5cdf9208 GIT binary patch literal 1011 zcmVPx#0%A)?L;(MXkIcUS000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipSz2M{DG z3KS9m000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000A0Nkl6sZ$^Ni&w$)sq8*N_9sHxR(NDPmaa}1;7rF6l8gR?zruDK3!PwvPb+0BJz@2vA6Qn?#jnNbnLB;-}}@omg4XgXK}eFH~5}C)FVX5>)4wiV!=%zs_Eu5 z6HF!jJcaPlej+1CS;CVnMsx-s#jEvSAVQX+n3d!i%z!D#7tzY8U`kLa|Dsa&V^}v@^1P5E3QwH z3TTKvd8Xtzzx=?8yM)Q_zH*eRU6)AK^uJ8Agh zAQoTFAo$xNTQ*F!_vV3@4afkZYRqysdapWYKrSI>C8o0WX9mf-ZZ@r4NpYWLh`S_g z=rKu!wmpfy^OB)okW?PC8j+qw;lz*;lg)^>pDiMsP_4VqK#USXbhp_<KVvTR=5hcl~3*ZZs=^!+fyz;B)NI|$f!NQx4-zsEYOnjFD z=_QBlODw;G#h$pB0+~4v>zr!(tV29W`AMx`QsLLue_{fY#ygST z`DuAlGVxI51oXfB$FeKjezeXF5Twq1z2DjsWxgeqW2w1SHP*e{`rI4xgqX`3mQscg z;fdXItU}s;5n?5G?hg*VWFgvqvI?0K7mK-@(z~`IszYwU=1ec^ zZKeFKWcI^vBvr(%2R@4f$;;})XFu?Nr*H!wu!raWnG}|~S}Vs>i*dI7V!Yp025Q{^ h0czd$qv^JlzW~?P2+QAFBZvS1002ovPDHLkV1oFR->d)t literal 0 HcmV?d00001 diff --git a/public/images/kb14.png b/public/images/kb14.png new file mode 100644 index 0000000000000000000000000000000000000000..514e9fc34d874e2caf788cb1e1c7718cb0dcbd80 GIT binary patch literal 433 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh0wlLOK8*rWjKx9jP7LeL$-D$|n3BBRT^Rni z_n+Ah4nJa0`PlBg3pY5H=O_FHU%qPzmD65<(wLXst}5hc#~xw)x% zB@E6*sfi`2DGKG8B^e6tp1uL$jeO!jYXm%9977~7=T5NqU}6+GR$m_Fcu_#twV>Q2 zra4nJa0`PlBg3pY5H=O_FHU%qPz^-uluJ0g(OQ{BTAg}b8}Pk zN*J7rQWHy3QxwWGOEMJPJ$(bh8~Mb6)^K~eIEF}E&h7WtZZ2dvZofZWy6=ph*ZEeB zM~n6_=t=i!7f#s2`gG9~T^)1wQ%4UzwCw4Av&yDj^QW-#=5*CWC+&Gpzn2>1w%6v} zuWw(!(6Pnw!7TZx2a{C0Z{NxL;MXerX^YCslfoy}(uK_~9erY%Z7Ugh^GDwCuw65D zC9o!Zb=wpaxp&ozpvjX|ZZdB?bHzDUGi3QMm7Dg?E1kal77dr+F)Z4`%qHNLuR0@c z{q+2&FIViF6f5+YEn?37yvfPGUM})#)PFQ3yV_Vris9TlH@Th9Crfa$RU{o!{qbKo z<%`nlRauk#Otsq>7BN`-w&0nppmN~)M#tWQGw~f~elEW2cjB|Vrudrz)(_krAyZ2I Th2%4UVaMR<>gTe~DWM4f%LAqk literal 0 HcmV?d00001 diff --git a/public/images/loader2.gif b/public/images/loader2.gif new file mode 100644 index 0000000000000000000000000000000000000000..437916173acfb804df5436d04f217928b2cc662c GIT binary patch literal 2485 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≫-k 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 RK&t=%002ovPDHLkV1h7(hE4zg literal 0 HcmV?d00001 diff --git a/public/images/rematch.gif b/public/images/rematch.gif new file mode 100644 index 0000000000000000000000000000000000000000..c41f42b83c72d894885c3a95b472fed4ebe4ec47 GIT binary patch literal 1200 zcmZ?wbhEHbG+;1bI9AEP$jHRR#LU9N%F4>d&d$NX!O6+R#l_9d!^_Ld$Hy-qARs6x zC?qT-EFvN*CMqT_CN3#1Atfm#BPA^>BP%Z}CnqbXASW*`r=TRSpeV1Xtf;K2q@t#x zrlG2?sivW=uBoG;t*fQ0udQdGYha{rV5nzktZ!s$U~Fb&YGGn(VQgk;YG!F-VQpq< zV`XJ!Zf$2_V{c{aXl>_YWA9{Z?_lHLZ0q1`@8D?b=;Gk$f5OBG6DLiaGCg^^&2*A-U0+ij~+XD^3>@wXD@-kxROivPL&TtkAL9RpmA^bD9885kH8f3k3DFw`^X0NKDuGGJg}|JP98)MV4z z*51+C)!o|MS8oY);}oE)ruLi7o-=pe`~?daHXAQpwtU6PRjbz+HyLf%2z1@nZQG6N z4R`O^yKn!2gNODQ96fgY1jwn!^v++nc6xFtegCNO>-V3(f72>&-TC0Y;lVy(4q>gB9UFY+*%W0M%<&Lh*x4;% zoOQ+HS)!bcgISkMW>d?_$r{1SWFCK17MyC3+&9B>^D^JrNl|twMVr(81s$5XWUWkk z&b23XXsJpqT6uYSz``cWUjn{YRtGp{+&v|FWP*Oe;igpQuZq%Qv6svK9@w__Hvhl4 zQ>SVr+>hSgooD;v?&<5!({~oX|M9}RBES7`hj94=CW{RMMd z%)@Qx7dYo1m{Xa@dvS&7iny~;&C@OwP2DnYEo1ZB+dB+X8huSY-`(G)%OUS~he_<7 z)kKkayE#ptpI^|7aeVjDKXUX)i#N~s_ZF|zaQK5^YaVU5XZdb9>2c7S3WV{ z-~JH4){oDRY~EQ?fQ z%Gvhv+3bR2n$PFt$|XFXTk&k=^LaJjDwi`huxY(m&?1)gVqv4$f)|T=%wD}%Ji%?( z3wf51td~n?q^)|nY>tq^35Er2TCY|tnU?ixB{PrGfmLg^y?V8J!!fDX%8XaCUa#Hp zY}M;^JMD}(7!I&$zu9m^EL&$oKMNDKH0uUTv&}8gGz-jRz`O-XvomJSf~MI;i{?)kf~MIWJ9oj-?BQ9B4Aub5>@zX| literal 0 HcmV?d00001 diff --git a/public/images/s16.png b/public/images/s16.png new file mode 100644 index 0000000000000000000000000000000000000000..5ef6c90cdacaa6e8924b358403c66c3add62220d GIT binary patch literal 6457 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 R{_h_Q6$K6X>KB%8{|DHQcj5p5 literal 0 HcmV?d00001 diff --git a/public/images/sover.png b/public/images/sover.png new file mode 100644 index 0000000000000000000000000000000000000000..084366520d26a8b6116c640a1b4411d6f00bdd6e GIT binary patch literal 10468 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 HDER*XI))$_ literal 0 HcmV?d00001 diff --git a/public/images/sprite_color.png b/public/images/sprite_color.png new file mode 100755 index 0000000000000000000000000000000000000000..7ccbf3bfb37fde7e98ce09b5e748f4cb20f5fb99 GIT binary patch literal 5685 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 literal 0 HcmV?d00001 diff --git a/public/images/sprite_mini.png b/public/images/sprite_mini.png new file mode 100644 index 0000000000000000000000000000000000000000..1906db0a09f6a29080b2a7e44a238ae6855e3cd9 GIT binary patch literal 4099 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 B$6o*d literal 0 HcmV?d00001 diff --git a/public/images/sprite_question.png b/public/images/sprite_question.png new file mode 100644 index 0000000000000000000000000000000000000000..38d5d88e4b774a3dacd8117cdff7cb9ed789c735 GIT binary patch literal 2944 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 QW{V71n>(1*nD{3A8xqZmD*ylh literal 0 HcmV?d00001 diff --git a/public/images/sprite_question.xcf b/public/images/sprite_question.xcf new file mode 100644 index 0000000000000000000000000000000000000000..ffbe55efcdd0057183c344cdeaf78e06e24c6e0b GIT binary patch literal 19397 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 NoE45wH#l;+_)oD+A>{x7 literal 0 HcmV?d00001 diff --git a/public/images/system.png b/public/images/system.png new file mode 100644 index 0000000000000000000000000000000000000000..68bcad6615b743fca8241ad3cc677b60835dd861 GIT binary patch literal 493 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg49w}Z?#cztMK;}!9xJHyX=jZ08 z=9Mrw7o{eaq^2m8XO?6rxO@5rgg5eu1FiD#ba4!^IQ@2#z4ze&k)!9U^#z45>%CRr z&57d1ra2dglRo#mOgA+JmaN9&j{-U;1w_*KdA(h{f}VMLYKhJ1u!FWbxej+|Q5Y z_E)2}Tg^SU^Yt#?Y~5{{X0z{Rtv!G2@kg~5FU`MNY1z6{f;twxaMKj+b6Y%lJwuQP zYmed7DbFn*S?mk*YHdEa;Hih^N<+45w@ytjmtha`;%cyP>Nv|1%F)E|x9)$Fz@#(J zKbxzcFP@ot(|YNaz_fMOU%&WTHN9m*%EkyAMuu#&*`~>7;&$J)`(krGx#ywz&wc%Q z+pDK8ds#b4rGK`2QEa(AN7DquG6#;Ecg-5F{Yu>$wU_Ax0|!GJ!w1GI3>zl#USr^4 h_^Zjh;DG%PhD)1XZ&|FSuoxKd44$rjF6*2UngDXu$Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igk| z6b~rzx=j8600H1hL_t(I%bk+FY8ycmh0kPHv%8I0p`U*1;ExryfUnkCI_I!&Yb{BBJD%VHKtwLHEHlSl^E|gA zGX5(dNs`aY419VMXL4fbnE9`F^lSgTdfAfVZCKy{p&jI*wy)jKOBJ0RTi%1g*78 z)3lh+=T<~M0Qi(7$xqeq_g^ZdzBC$*pi-%nj4{d>gU1wxA+*-+=H{lD&*zq8-)ps6 z@0-o$t0;=}a=BDRQQ-IscP@$o#uybvkrzdgy1l*ieUfjKQvPbS!c*j&!)mpH=XpNK u*FMRnh$xcyM=6pupX7Kpn~m^)8vh0qs-A75dsSKh0000Px#0%A)?L;(MXkIcUS000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipSz1}7oQ zr7E5P000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000FuNklEIk{D>+g3a{IA*?2ecmO`fhnMyI-qVU&hdQ)%W<@Qg zNivvC8cD1L*5ajw9W?ij;q3@v?_I+`68;yG?qL`^5#k&2dy8T|zL016nBN-|1+=4C zDp#3i3DHhLPg5jNg-Ya?B>7b$#3d4XmZTJA$*myV>MKO)qlJ|e#*l*zHy5Z0>z@p- zks11%$y`2!iF_5h)Pos9AADTr*I1Wy4Bz4n3mf%(#E8JyVYF4@*doM_06fp9G=|Bw zbDUYkbtXtlmPe4hCB#Mi$gUMCmoGGOLtB(1#C?{8lk7rv9Z_evwN!CJ zG@-(Xk&!~kswMg-ikwGtjPtx6q?m%@bXX5VnVdq%rj}6OAF>E#MctSJZvKW4tqeCv zenSfs3r(6Jgx(JAv%k=js);G(*JL5e0Y)O5>J=OJR4ioEc}dc2A&08f6)qbp%ZD{+ zhPuXGjTRcDd)g-yr(-gM7lc@DWjLmSPzw8T@Fy!-1+1XZ)LkD1kZUCivP}s%_zd`j zD*Ew`=?n@;w&H;nlOofZ2EannO-j@Q+^}*M&X|sq%K&)A^!$?m$H9d%m*pI1V*!vGWOsObjR~J190NNLIxI~ z1rHu>afw>|q3pGoMHB&hSwtgvc~yI&JH$fn2KSh)Qhls55qsS&@B zFaHJ-BFMmjgB<#YmUxW*+=NQgg?$AaPb<|Qz6=gwd5RVV0=?CLqUNmnGpvp*} z=jl7$GMP@Sn!P=Q*Vkez=TDZ+^ z+<_1Sz&ZA@M`6!7?VO+_bVDp%#Ec>)k&law?Y0s;q;SX}i00000").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
    a",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="
    "+""+"
    ",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="
    t
    ",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
    ",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( +a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f +.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); + +/*! jQuery UI - v1.8.20 - 2012-04-30 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.core.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.20",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a=9||!!b.button?this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted):this._mouseUp(b)},_mouseUp:function(b){return a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);;/*! jQuery UI - v1.8.20 - 2012-04-30 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.draggable.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!this.element.data("draggable"))return;return this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options;return this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(b),this.handle?(c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('
    ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment(),this._trigger("start",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.helper.addClass("ui-draggable-dragging"),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1)return this._mouseUp({}),!1;this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);var d=this.element[0],e=!1;while(d&&(d=d.parentNode))d==document&&(e=!0);if(!e&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var f=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){f._trigger("stop",b)!==!1&&f._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){return this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;return a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)}),c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute"),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.lefth[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.toph[3]?j-this.offset.click.toph[2]?k-this.offset.click.left=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f=k&&g<=l||h>=k&&h<=l||gl)&&(e>=i&&e<=j||f>=i&&f<=j||ej);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();g:for(var h=0;h",this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend(""),d.secondary&&b.append(""),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",c))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}),a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c),a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b=this.element.css("direction")==="rtl";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),a.Widget.prototype.destroy.call(this)}})})(jQuery);;/*! jQuery UI - v1.8.20 - 2012-04-30 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.slider.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){var c=5;a.widget("ui.slider",a.ui.mouse,{widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var b=this,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="",g=d.values&&d.values.length||1,h=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"+(d.disabled?" ui-slider-disabled ui-disabled":"")),this.range=a([]),d.range&&(d.range===!0&&(d.values||(d.values=[this._valueMin(),this._valueMin()]),d.values.length&&d.values.length!==2&&(d.values=[d.values[0],d.values[0]])),this.range=a("
    ").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:"")));for(var i=e.length;ic&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i),j===!1?!1:(this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0,!0))},_mouseStart:function(a){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return this.orientation==="horizontal"?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),d<0&&(d=0),this.orientation==="vertical"&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),this.options.values.length===2&&this.options.range===!0&&(b===0&&c>d||b===1&&c1){this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(null,b);return}if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();d=this.options.values,e=arguments[0];for(f=0;f=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return Math.abs(c)*2>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,f,g={},h,i,j,k;this.options.values&&this.options.values.length?this.handles.each(function(b,i){f=(d.values(b)-d._valueMin())/(d._valueMax()-d._valueMin())*100,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&(d.orientation==="horizontal"?(b===0&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(b===0&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),b==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),b==="max"&&this.orientation==="horizontal"&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),b==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},c.animate),b==="max"&&this.orientation==="vertical"&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.20"})})(jQuery);; + +/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net) + * Licensed under the MIT License (LICENSE.txt). + * + * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. + * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. + * Thanks to: Seamus Leahy for adding deltaX and deltaY + * + * Version: 3.0.6 + * + * Requires: 1.2.2+ + */ + +(function($) { + +var types = ['DOMMouseScroll', 'mousewheel']; + +if ($.event.fixHooks) { + for ( var i=types.length; i; ) { + $.event.fixHooks[ types[--i] ] = $.event.mouseHooks; + } +} + +$.event.special.mousewheel = { + setup: function() { + if ( this.addEventListener ) { + for ( var i=types.length; i; ) { + this.addEventListener( types[--i], handler, false ); + } + } else { + this.onmousewheel = handler; + } + }, + + teardown: function() { + if ( this.removeEventListener ) { + for ( var i=types.length; i; ) { + this.removeEventListener( types[--i], handler, false ); + } + } else { + this.onmousewheel = null; + } + } +}; + +$.fn.extend({ + mousewheel: function(fn) { + return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel"); + }, + + unmousewheel: function(fn) { + return this.unbind("mousewheel", fn); + } +}); + + +function handler(event) { + var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0; + event = $.event.fix(orgEvent); + event.type = "mousewheel"; + + // Old school scrollwheel delta + if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta/120; } + if ( orgEvent.detail ) { delta = -orgEvent.detail/3; } + + // New school multidimensional scroll (touchpads) deltas + deltaY = delta; + + // Gecko + if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) { + deltaY = 0; + deltaX = -1*delta; + } + + // Webkit + if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; } + if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; } + + // Add event and delta to the front of the arguments + args.unshift(event, delta, deltaX, deltaY); + + return ($.event.dispatch || $.event.handle).apply(this, args); +} + +})(jQuery); + +// tipsy +(function(b){function j(a){if(a.attr("title")||typeof a.attr("original-title")!="string")a.attr("original-title",a.attr("title")||"").removeAttr("title")}function k(a,c){this.$element=b(a);this.options=c;this.enabled=true;j(this.$element)}k.prototype={show:function(){var a=this.getTitle();if(a&&this.enabled){var c=this.tip();c.find(".tipsy-inner")[this.options.html?"html":"text"](a);c[0].className="tipsy";c.remove().css({top:0,left:0,visibility:"hidden",display:"block"}).appendTo(document.body);a= b.extend({},this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight});var d=c[0].offsetWidth,h=c[0].offsetHeight,f=typeof this.options.gravity=="function"?this.options.gravity.call(this.$element[0]):this.options.gravity,g;switch(f.charAt(0)){case "n":g={top:a.top+a.height+this.options.offset,left:a.left+a.width/2-d/2};break;case "s":g={top:a.top-h-this.options.offset,left:a.left+a.width/2-d/2};break;case "e":g={top:a.top+a.height/2-h/2,left:a.left-d-this.options.offset}; break;case "w":g={top:a.top+a.height/2-h/2,left:a.left+a.width+this.options.offset};break}if(f.length==2)g.left=f.charAt(1)=="w"?a.left+a.width/2-15:a.left+a.width/2-d+15;c.css(g).addClass("tipsy-"+f);this.options.fade?c.stop().css({opacity:0,display:"block",visibility:"visible"}).animate({opacity:this.options.opacity}):c.css({visibility:"visible",opacity:this.options.opacity})}},hide:function(){this.options.fade?this.tip().stop().fadeOut(function(){b(this).remove()}):this.tip().remove()},getTitle:function(){var a, c=this.$element,d=this.options;j(c);d=this.options;if(typeof d.title=="string")a=c.attr(d.title=="title"?"original-title":d.title);else if(typeof d.title=="function")a=d.title.call(c[0]);return(a=(""+a).replace(/(^\s*|\s*$)/,""))||d.fallback},tip:function(){if(!this.$tip)this.$tip=b('
    ').html('
    ');return this.$tip},validate:function(){if(!this.$element[0].parentNode){this.hide();this.options=this.$element=null}}, enable:function(){this.enabled=true},disable:function(){this.enabled=false},toggleEnabled:function(){this.enabled=!this.enabled}};b.fn.tipsy=function(a){function c(e){var i=b.data(e,"tipsy");if(!i){i=new k(e,b.fn.tipsy.elementOptions(e,a));b.data(e,"tipsy",i)}return i}function d(){var e=c(this);e.hoverState="in";a.delayIn==0?e.show():setTimeout(function(){e.hoverState=="in"&&e.show()},a.delayIn)}function h(){var e=c(this);e.hoverState="out";a.delayOut==0?e.hide():setTimeout(function(){e.hoverState== "out"&&e.hide()},a.delayOut)}if(a===true)return this.data("tipsy");else if(typeof a=="string"){var f=this.data("tipsy");f&&f[a]();return this}a=b.extend({},b.fn.tipsy.defaults,a);a.live||this.each(function(){c(this)});if(a.trigger!="manual"){f=a.live?"live":"bind";var g=a.trigger=="hover"?"mouseleave":"blur";this[f](a.trigger=="hover"?"mouseenter":"focus",d)[f](g,h)}return this};b.fn.tipsy.defaults={delayIn:0,delayOut:0,fade:false,fallback:"",gravity:"n",html:false,live:false,offset:0,opacity:0.8, title:"title",trigger:"hover"};b.fn.tipsy.elementOptions=function(a,c){return b.metadata?b.extend({},c,b(a).metadata()):c};b.fn.tipsy.autoNS=function(){return b(this).offset().top>b(document).scrollTop()+b(window).height()/2?"s":"n"};b.fn.tipsy.autoWE=function(){return b(this).offset().left>b(document).scrollLeft()+b(window).width()/2?"e":"w"}})(jQuery); diff --git a/public/sound/alert.mp3 b/public/sound/alert.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..57ffa03da30e865dc466f2123af3af7591a747df GIT binary patch literal 22141 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
    0Z;;|Hut&;dP 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 literal 0 HcmV?d00001 diff --git a/public/sound/alert.ogg b/public/sound/alert.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4a4d5533f896943c26aed596d2329b5e3d496c02 GIT binary patch literal 10233 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 RPX%5707LfyNf?ave*uS;kZ%A0 literal 0 HcmV?d00001 diff --git a/public/stylesheets/analyse.css b/public/stylesheets/analyse.css new file mode 100644 index 0000000000000..bb1824fd1c03c --- /dev/null +++ b/public/stylesheets/analyse.css @@ -0,0 +1,104 @@ +#lichess h1 { + font-size: 2em; + margin-bottom: 5px; +} +#pgnText { + color: #666; + width: 182px; + height: 300px; + border: 1px solid #C0C0C0; + overflow: auto; + padding: 5px; + margin-top: 0.5em; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + background: transparent; +} + +div.board_wrap { + float: left; + width: 514px; +} +div.moves_wrap { + margin-left: 532px; +} +span.board_mark { + position: absolute; + text-transform: uppercase; + font-size: 10px; + color: #bbb; + font-weight: bold; +} +span.board_mark.vert { + right: -10px; +} +span.board_mark.horz { + bottom: -14px; +} + +#GameBoard { + position: relative; +} + +#GameBoard table.boardTable { + box-shadow: 0 0 7px #bbb; + -moz-box-shadow: 0 0 7px #bbb; + -webkit-box-shadow: 0 0 7px #bbb; + border: 1px solid #ccc; + border-radius: 5px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; +} +#GameBoard.flip table, #GameBoard.flip img.pieceImage { + -o-transform: rotate(180deg); + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + transform: rotate(180deg); +} +#GameBoard td.highlightWhiteSquare a, +#GameBoard td.highlightBlackSquare a { + background: url(../images/over5.png) top left no-repeat; +} +#GameBoard td a { + display: block; + height: 64px; +} + +#GameButtons { + margin-top: 20px; +} +#GameButtons input { + width: 100px; + height: 2em; +} + +#GameText { + font-size: 1.2em; + height: 504px; + border: 1px solid #C0C0C0; + overflow: auto; + padding: 5px; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; +} +#GameText table { + margin: auto; +} +#GameText tr { + border-bottom: 1px solid #eaeaea; +} +#GameText a.move { + font-family: 'pgn4web ChessSansMerida', 'pgn4web Liberation Sans', sans-serif; + text-decoration: none; + padding: 3px 12px; + display: block; + color: #444; +} +#GameText a:hover { + background: #DDD; +} +#GameText a.moveOn { + background: #FFE73B; +} diff --git a/public/stylesheets/board.css b/public/stylesheets/board.css new file mode 100644 index 0000000000000..bf0188a92033c --- /dev/null +++ b/public/stylesheets/board.css @@ -0,0 +1,798 @@ +div.lichess_board_wrap { + float: left; + border: 1px solid #D3D3D3; + position: relative; +} +span.board_mark { + position: absolute; + text-transform: uppercase; + font-size: 10px; + color: #bbb; + font-weight: bold; +} +span.board_mark.vert { + right: -10px; +} +span.board_mark.horz { + bottom: -14px; +} + +div.lichess_board { + width: 512px; + height: 512px; + position: relative; +} + +div.lcs { + position: absolute; + width: 64px; + height: 64px; +} + +div.grey div.lcs.black, a.colorpicker.grey { + background: #cacaca; +} +div.grey div.lcs.white { + background: #FFFFFF; +} +div.brown div.lcs.black, a.colorpicker.brown { + background: #b58863; +} +div.brown div.lcs.white { + background: #f0d9b5; +} +div.green div.lcs.black, a.colorpicker.green { + background: #86a666; +} +div.green div.lcs.white { + background: #ffffdd; +} +div.blue div.lcs.black, a.colorpicker.blue { + background: #5d7da2; +} +div.blue div.lcs.white { + background: #ffffdd; +} + +div.lcsi { + position: absolute; + width: 64px; + height: 64px; + background: url(../images/sover.png) top left no-repeat; + background-position: 0 -320px; +} +div.lcs.moved div.lcsi { + background-position: 0 -192px; +} +div.lcs.check div.lcsi { + background-position: 0 -256px; +} +div.lcs.premoved div.lcsi { + background-position: 0 -64px !important; +} +div.my_turn.not_spectator div.lcs:hover div.lcsi { + background-position: 0 0px; +} +div.lcs.droppable-hover div.lcsi { + background-position: 0 -64px !important; +} +div.lichess_board div.lcs.selected div.lcsi, +div.lichess_board div.lcs.selectable div.lcsi { + background-position: 0 -64px !important; + cursor: pointer; +} +div.lichess_board div.lcs.selectable div.lichess_piece { + cursor: pointer; +} + +div.lichess_piece { + position: absolute; + width: 64px; + height: 64px; + background-image: url(../images/sprite.png); +} +body.hide_pieces div.lichess_piece { + background-image: url(../images/sprite_question.png); +} + +div.my_turn div.lichess_piece.ui-draggable { + cursor: move; +} + +div.lichess_piece.bishop.white{ + background-position: -64px 0; +} +div.lichess_piece.knight.white{ + background-position: -128px 0; +} +div.lichess_piece.rook.white{ + background-position: -192px 0; +} +div.lichess_piece.queen.white{ + background-position: -256px 0; +} +div.lichess_piece.king.white{ + background-position: -320px 0; +} + +div.lichess_piece.pawn.black{ + background-position: 0 bottom; +} +div.lichess_piece.bishop.black{ + background-position: -64px bottom; +} +div.lichess_piece.knight.black{ + background-position: -128px bottom; +} +div.lichess_piece.rook.black{ + background-position: -192px bottom; +} +div.lichess_piece.queen.black{ + background-position: -256px bottom; +} +div.lichess_piece.king.black{ + background-position: -320px bottom; +} + +div.lichess_game_not_started { + position: relative; +} + +div.lichess_overboard { + position: absolute; + z-index: 3; + width: 305px; + top: 214px; + left: 105px; + padding: 15px 0 22px 0; + font-size: 14px; + line-height: 1.8em; + text-decoration: none; + background: #FFF; + border-radius: 8px; + -moz-border-radius: 8px; + -webkit-border-radius: 8px; + box-shadow: 0px 0px 20px #444; + -moz-box-shadow: 0px 0px 20px #444; + -webkit-box-shadow: 0px 0px 20px #444; + text-align: center; +} +div.lichess_overboard a.close { + float: right; + width: 32px; + height: 32px; + display: block; + background: url(../images/close24.png) no-repeat; + cursor: pointer; + margin-top: -9px; + margin-right: 6px; + opacity: 0.4; +} +div.lichess_overboard a.close:hover { + opacity: 1; +} + +div.lichess_overboard p.explanations { + margin-top: 1em; + border-top: 1px solid #ccc; + padding-top:1em; + font-size: 12px; + line-height: 1.4em; + text-align: left; + padding-left: 1em; +} + +#connection_lost { + display: none; + top: 217px; + left: 146px; + width: 220px; + padding: 10px 0 0 0; + font-weight: bold; + color: #666; + opacity: 0.7; + box-shadow: 0px 0px 20px #d85000; + -moz-box-shadow: 0px 0px 20px #d85000; + -webkit-box-shadow: 0px 0px 20px #d85000; +} + +#premove { + display: none; + position: absolute; + top: 512px; + left: 0px; + width: 512px; + text-align: center; + padding: 5px 0; + border: 1px solid #ccc; + font-weight: bold; + color: #fff; + background: #d85000; + z-index: 50; +} + +div.lichess_table_wait_next { + background-image: url(../images/loader2.gif); +} + +input.lichess_id_input { + margin-top: 10px; + border: none; + background: #fff; + width: 100%; + text-align: center; + color: #444; + font-size: 1.2em; +} + +div.lichess_promotion_choice { + display: none; + position: absolute; + top: 0; + left: 0; + width: 404px; + height: 288px; + background: #fff; + opacity: 0.8; + text-align: center; + padding: 224px 0 0 108px; +} + +div.lichess_promotion_choice div.lichess_piece { + float:left; + position:static; + padding: 5px; + width: 54px; + height: 54px; + margin: 0 5px; + cursor: pointer; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + box-shadow:0 0 5px #444; + -moz-box-shadow:0 0 5px #444; + -webkit-box-shadow:0 0 5px #444; +} + +div.lichess_promotion_choice div.lichess_piece:hover { + box-shadow:0 0 10px blue; + -moz-box-shadow:0 0 10px blue; + -webkit-box-shadow:0 0 10px blue; +} + +div.lichess_board_wrap { + box-shadow: 0 0 7px #bbb; + -moz-box-shadow: 0 0 7px #bbb; + -webkit-box-shadow: 0 0 7px #bbb; + border: 1px solid #ccc; + border-radius: 5px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; +} + +div.lichess_player_white #a8, +div.lichess_player_black #h1 { + border-radius: 4px 0 0 0; + -moz-border-radius: 4px 0 0 0; + -webkit-border-radius: 4px 0 0 0; +} + +div.lichess_player_white #h8, +div.lichess_player_black #a1 { + border-radius: 0 4px 0 0; + -moz-border-radius: 0 4px 0 0; + -webkit-border-radius: 0 4px 0 0; +} + +div.lichess_player_white #a1, +div.lichess_player_black #h8 { + border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + -webkit-border-radius: 0 0 0 4px; +} + +div.lichess_player_white #h1, +div.lichess_player_black #a8 { + border-radius: 0 0 4px 0; + -moz-border-radius: 0 0 4px 0; + -webkit-border-radius: 0 0 4px 0; +} + +div.lichess_join_url { + display:none; + background: none; + border: none; + margin: 1em 0 0 0; +} + +div.lichess_join_url span { + display: block; + padding: 0.5em; + background: #fff; + margin-top: 1em; + border: 1px solid #D4D4D4; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; +} + +div.lichess_ground { + position: relative; + margin-left: 532px; + height: 514px; +} + +div.lichess_table_wrap { + position: absolute; + top: 176px; + left: 0px; + width: 242px; +} +div.lichess_table { + border: 1px solid #ccc; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + box-shadow: 0 0 7px #d0d0d0; + -moz-box-shadow: 0 0 7px #d0d0d0; + -webkit-box-shadow: 0 0 7px #d0d0d0; + height: auto; + padding: 10px; +} +div.lichess_table.table_with_clock { + border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + -webkit-border-radius: 0 4px 4px 0; +} +div.lichess_table.spectator { + top: 160px; +} +div.lichess_table_not_started { + position: absolute; + top: 176px; + left: 0px; + width: 242px; + box-shadow: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + border: none; + padding: 0; + top: 100px; +} +div.lichess_table div.username { + padding-left: 16px; +} +div.lichess_table div.username.connected { + background: url(../images/s16.png) no-repeat; + background-position: 0 -112px; +} +div.lichess_table div.username.offline { + background: url(../images/s16.png) no-repeat; + background-position: 0 -128px; +} +div.clock { + width: 70px; + border: 1px solid #ccc; + padding: 4px 0 4px 10px; + font-size: 20px; + font-family: monospace; + font-weight: bold; + box-shadow: 0 0 7px #d0d0d0; + -moz-box-shadow: 0 0 7px #d0d0d0; + -webkit-box-shadow: 0 0 7px #d0d0d0; +} +div.clock.running { + background: #fff077; + color: #444; +} +div.clock.outoftime { + background-color: #eFAAAA; + font-weight: bold; + color: #444; +} +div.clock_top { + border-bottom: 0; + border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + -webkit-border-radius: 4px 4px 0 0; +} +div.clock_bottom { + border-top: 0; + border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + -webkit-border-radius: 0 0 4px 4px; +} +div.lichess_table_wrap a.moretime { + opacity: 0.4; + position: absolute; + left: 87px; + top: 6px; + width: 32px; + height: 32px; + display: block; + background: url(../images/add.png) no-repeat; +} +div.lichess_table_wrap a.moretime:hover { + opacity: 1; +} + +div.lichess_table_next { + top: 145px; +} + +div.lichess_separator { + margin: 10px 0; + border-bottom: 1px solid #ddd; +} + +div.lichess_control { + margin-top: 20px; +} + +div.lichess_control a { + font-size: 90%; +} + +div.lichess_control label { + margin-right: 1em; + cursor: pointer; +} +div.lichess_control input { + vertical-align: middle; + margin-right: 0.3em; +} +div.lichess_control a.lichess_play_again { + margin-left: 1em; +} + +div.lichess_control div.lichess_play_again_join a.lichess_play_again { + margin-left: 0; + font-size: 150%; + display: block; +} +div.lichess_control div.rematch_alert { + background: url(../images/rematch.gif) center left no-repeat; + padding-left: 60px; + margin-bottom: 1em; +} +div.lichess_control div.rematch_wait { + background: url(../images/loader2.gif) center left no-repeat; + padding-left: 40px; + margin-bottom: 1em; +} + +div.lichess_control a.lichess_resign, +div.lichess_control a.lichess_abort, +div.lichess_control a.propose_takeback, +div.lichess_control a.offer_draw { + float: right; + display: block; + margin-left: 1em; +} + +div.lichess_control.buttons a.button { + display: block; + margin-bottom: 0.7em; + text-align: center; +} + +div.lichess_claim_draw_zone, +div.force_resign_zone, +div.proposed_takeback, +div.offered_draw { + margin-top: 10px; + padding-top: 10px; + border-top: 1px solid #ddd; +} +div.force_resign_zone { + display: none; +} + +div.lichess_separator { + margin: 10px 0; + border-bottom: 1px solid #ddd; +} + +div.lichess_table .lichess_button { + margin: 2.5em 0 0 0; + font-size: 1.3em; + display: block; + text-decoration: none; + padding: 1em; + border-radius: 32px; + -moz-border-radius: 32px; + -webkit-border-radius: 32px; + box-shadow: 0 0 3px #ccc; + -moz-box-shadow: 0 0 3px #ccc; + -webkit-box-shadow: 0 0 3px #ccc; + text-align: center; + border: 1px solid #d3d3d3; + font-weight: normal; +} +div.lichess_table a.lichess_button:hover, div.lichess_table a.lichess_button.active { + box-shadow: 0 0 9px #d85000; + -moz-box-shadow: 0 0 9px #d85000; + -webkit-box-shadow: 0 0 9px #d85000; + border: 1px solid #d85000; +} + +div.lichess_current_player { + height: 64px; +} +div.lichess_current_player div.lichess_player { + position: absolute; + margin-left: -5px; +} +div.lichess_current_player div.lichess_player div.lichess_piece { + top: 0; + left: 0; +} +div.lichess_current_player div.lichess_player p { + height: 64px; + line-height: 64px; + font-size: 15px; + font-weight: bold; + color: #888; + margin: 0 0 0 64px; +} + +div.lichess_table.finished div.lichess_player p { + line-height: 2em; + margin-top: 3px; +} + +div.lichess_cemetery { + height: 108px; + width: 262px; + position: absolute; + left: 0px; +} +div.lichess_cemetery_top { + top: 0; + margin-bottom: 10px; +} +div.lichess_cemetery_bottom { + bottom: 0; + margin-top: 10px; +} + +div.lichess_cemetery div.lichess_tomb { + display: block; + float: left; + margin: -5px -16px; + width: 64px; + height: 64px; +} +div.lichess_cemetery div.lichess_piece { + opacity: 0.5; +} + +div.lichess_goodies { + margin-top: 1em; +} +.nb_viewers { + margin-top: 1em; + display: none; +} + +div.lichess_chat { + font-size: 11px; + position: absolute; + top: 158px; + left: 0; + box-shadow: 0 0 7px #d0d0d0; + -moz-box-shadow: 0 0 7px #d0d0d0; + -webkit-box-shadow: 0 0 7px #d0d0d0; +} +div.lichess_chat_top { + border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + -webkit-border-radius: 4px 4px 0 0; + border: 1px solid #ccc; + padding: 3px 5px; +} +div.lichess_chat_top span.title { + font-weight: bold; + color: #999; +} +div.lichess_chat_inner { + position: relative; +} + +div.lichess_chat input.toggle_chat { + cursor: pointer; + position: absolute; + top: 4px; + right: 4px; + z-index:1; +} + +div.lichess_chat ol { + height: 313px; + width: 183px; + border: 1px solid #ccc; + border-top: none; + padding: 2px 5px; + position:relative; + overflow:hidden; +} + +div.lichess_chat form { + position: relative; +} +div.lichess_chat form input { + border: 1px solid #ccc; + border-top: 0; + padding: 2px 20px 2px 4px; + border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + -webkit-border-radius: 0 0 4px 4px; + width: 169px; + background: white; +} +div.lichess_chat input.lichess_hint { + color: #888; +} +div.lichess_chat a.send { + position: absolute; + top: 0px; + right: 2px; + display: block; + height: 16px; + width: 16px; + background: url(../images/s16.png) no-repeat; + background-position: 0 -96px; + text-decoration: none; + z-index: 1; + opacity: 0.5; +} +div.lichess_chat a.send:hover { + opacity: 1; +} + +div.lichess_chat ol.lichess_messages li { + margin: 0.6em 0; + padding-left: 18px; + font-size: 11px; + line-height: 14px; +} +div.lichess_anon_chat ol.lichess_messages li { + padding-left: 4px; +} +div.lichess_anon_chat span.title { + padding-left: 4px; +} +div.lichess_anon_chat li span { + font-weight: bold; + margin-right: 6px; + color: #aaa; +} +div.lichess_anon_chat a.user_link { + padding: 0; + background: transparent; + color: #aaa; + text-decoration: none; + font-weight: bold; +} +div.lichess_anon_chat a.user_link:hover { + text-decoration: underline; +} + +div.lichess_chat input.toggle_chat { + cursor: pointer; + position: absolute; + top: 4px; + right: 4px; + z-index:1; +} + +div.lichess_chat ol.lichess_messages li.white { + background: url(../images/kw14.png) no-repeat; +} +div.lichess_chat ol.lichess_messages li.black { + background: url(../images/kb14.png) no-repeat; +} +div.lichess_chat ol.lichess_messages li.system { + background: url(../images/system.png) no-repeat; +} +div.lichess_chat.hidden ol.lichess_messages, div.lichess_chat.hidden form { + opacity: 0; +} + +div.undertable { + width: 514px; + font-size: 11px; + box-shadow: 0 0 7px #d0d0d0; + -moz-box-shadow: 0 0 7px #d0d0d0; + -webkit-box-shadow: 0 0 7px #d0d0d0; + margin-top: 15px; +} +div.undertable_top { + border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + -webkit-border-radius: 4px 4px 0 0; + border: 1px solid #ccc; + padding: 3px 5px; +} +div.undertable_top a.more { + float: right; + padding-right: 2px; + text-decoration: none; +} +div.undertable_top span.title { + font-weight: bold; + color: #999; + padding-left: 4px; +} +div.undertable_inner { + border: 1px solid #ccc; + border-top: 0; + border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + -webkit-border-radius: 0 0 4px 4px; + height: 163px; + overflow:hidden; +} + +div.lichess_bot table { + width: 100%; + height: 100%; +} +div.lichess_bot tr { + cursor: pointer; +} +div.lichess_bot td { + padding: 6px 5px 6px 5px; + background: #fff; + border-top: 1px solid #eaeaea; +} +div.lichess_bot tr:nth-child(even) td { + background: #f0f0f0; +} +div.lichess_bot a.user_link { + text-decoration: none; + font-weight: bold; + color: #999; + background: transparent; + padding-left: 0; +} +div.lichess_bot a.user_link:hover { + text-decoration: underline; +} +div.lichess_bot a.watch { + display: block; + width: 24px; + height: 24px; + background: url(../images/eye.png) top left no-repeat; + opacity: 0.4; +} +div.lichess_bot tr:hover td { + background: #fffaea; +} +div.lichess_bot tr:hover a.watch { + opacity: 1; +} +div.new_posts li { + margin: 0.6em 0; + padding-left: 9px; + line-height: 14px; + white-space: nowrap; +} +div.new_posts a.post_link { + margin-right: 7px; +} +div.new_posts li span { + font-weight: bold; + margin-right: 6px; + color: #aaa; +} +div.new_posts a.user_link { + padding: 0; + background: transparent; + color: #aaa; + text-decoration: none; + font-weight: bold; +} +div.new_posts a.user_link:hover { + text-decoration: underline; +} diff --git a/public/stylesheets/common.css b/public/stylesheets/common.css new file mode 100644 index 0000000000000..2456c6b7aee2c --- /dev/null +++ b/public/stylesheets/common.css @@ -0,0 +1,500 @@ +.clearfix:after { content:"."; display:block; height:0; clear:both; visibility:hidden; } +.clearfix {display:inline-block;} + +.none { + display: none; +} + +.s16 { + padding-left: 20px; + background: transparent url(../images/s16.png) top left no-repeat; +} + +body { + font:12px 'Lucida Grande','Lucida Sans Unicode',Geneva,Verdana,Sans-Serif; + color: #888; + background: #F7F7F7 url(../images/head_bg.png) top left repeat-x; + background-position: left +25px; +} + +a, a:visited { + color: #888; + text-decoration: underline; + cursor: pointer; +} + +a:hover { + text-decoration: none; +} + +strong { + font-weight: bold; +} + +.small { + font-size: 11px; +} + +div.header { + width: 200px; + float: left; + position: relative; +} +div.header strong { + font-weight: normal; +} + +div.content { + width: 1010px; + margin: 30px auto 30px auto; +} + +#top { + width: 100%; + height: 24px; + border-bottom: 1px solid #c4c4c4; +} +#site_description { + position: absolute; + top: -100px; +} + +#lichess { + margin-left: 211px; +} + +#site_title { + width: 130px; + color: #666; + font-family: 'Trebuchet MS', 'Helvetica Neue', Arial, Sans-Serif; + font-size: 30px; + color: #afafaf; + text-decoration: none; + display: block; + margin-bottom: 3px; +} +#site_title span.extension { + color: #c8c8c8; + font-weight: normal; +} +#site_title:hover { + color: #8899aa; +} +#site_title:hover span.extension { + color: #99aabb; +} +#site_baseline { + font-style: italic; + color: #afafaf; +} + +div.footer_wrap { + width: 100%; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + background: #EEE; + padding: 20px 0; + display: block; +} + +div.footer { + width: 1000px; + margin: auto; + line-height: 2em; +} + +div.footer div.right { + float: right; + text-align: right; +} + +.button { + border-radius: 5px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border: 1px solid #DADADA; + padding: 0.4em 1em; + text-decoration: none; + cursor: pointer; + font-size: 1.1em; +} +.button:hover { + color: #fff; +} + +a.easy_button { + font-weight: normal; +} + +div.content_box { + box-shadow: 0 0 7px #bbb; + -moz-box-shadow: 0 0 7px #bbb; + -webkit-box-shadow: 0 0 7px #bbb; + border: 1px solid #ccc; + border-radius: 5px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + background: #fff; + padding: 20px 25px 25px 25px; + text-align: left; +} +div.content_box.small_box { + width: 500px; +} +div.content_box.no_padding { + padding: 0; +} +div.content_box_title { + padding: 20px 25px 0 25px; +} +div.content_box_top { + padding-left: 25px; + height: 40px; + line-height: 40px; + border-radius: 4px 4px 0 0; + border-bottom: 1px solid #ccc; +} +div.content_box_top a { + float: right; + text-decoration: none; + font-size: 1.2em; + font-weight: bold; + line-height: 40px; + padding: 0 12px; + border-left: 1px solid #ccc; +} +div.content_box_top .link:hover { + background: #fff; +} +div.content_box_content { + padding: 20px 25px 25px 25px; +} +div.content_box_inter { + padding-left: 25px; + line-height: 40px; + background: #f0f0f0; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + display: block; +} +div.content_box_inter .lichess_title { + float: left; +} +div.content_box_inter a { + float: left; + font-size: 1.2em; + line-height: 40px; + margin-left: 2em; +} +div.content_box div.content_box_inter .lichess_title { + margin: 0; +} + +div.content_box .lichess_title { + font-size: 2em; + display: block; + margin-bottom: 0.5em; +} + +div.lichess_goodies div.box { + width: 182px; + border: 1px solid #C0C0C0; + padding: 7px; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + box-shadow: 0 0 7px #d0d0d0; + -moz-box-shadow: 0 0 7px #d0d0d0; + -webkit-box-shadow: 0 0 7px #d0d0d0; +} +#nb_connected_players, a.goto_nav, #top a.toggle, a#sound_state { + text-decoration: none; + font-size: 13px; + height: 24px; + line-height: 24px; + padding: 0 12px; + text-decoration: none; +} +#nb_connected_players { + float: left; + color: #999; + font-style: italic; + border-left: 1px solid #ccc; +} +a.goto_nav { + float: left; +} +a.goto_nav:hover, #top a.toggle:hover, a#sound_state:hover { + background: #fff; +} +#top .s16 { + display:block; + height: 16px; + margin-top: 4px; + line-height: 16px; +} +a.goto_message span.new_messages { + padding: 1px 4px; + background: #bbb; + color: white; + font-weight: bold; + border-radius:4px 4px 4px 4px; + -moz-border-radius:4px 4px 4px 4px; + -webkit-border-radius:4px 4px 4px 4px; + font-size: 0.9em; +} +a.goto_message span.new_messages.unread { + font-size: 1em; +} +a.goto_logout span.s16 { + background-position: 0 -48px; +} +a.goto_profile span.s16 { + background-position: 0 -208px; +} +a.goto_profile { + float: right; +} +div.security { + float: right; + position: relative; +} +div.security form { + display: none; + position: absolute; + right: -1px; + top: 24px; + background: #fff; + padding: 1em; + border: 1px solid #dadada; + border-top: none; + z-index: 1; +} +div.security form input { + margin-bottom: 8px; +} +div.security form div.button_wrap { + text-align: right; + border-bottom: 1px solid #dadada; + margin-bottom: 8px +} +#top a.toggle { + display:block; + padding-right: 4px; + float: left; +} +#top a.toggle span.s16 { + background-position: right -192px; + padding-left: 0; + padding-right: 20px; +} +div.security.show_signin_form a.toggle_signin { + background: #fff; +} +div.security.show_signin_form form { + display: block; +} +div.security input.username, div.security input.password { + border: 1px solid #dadada; + padding: 2px 3px; + width: 100px; + background: #fff; +} +div.security input.login { + padding: 0 3px; +} +div.lichess_language { + float: right; + position: relative; +} +ul.lichess_language_links { + display: none; + position: absolute; + right: -1px; + top: 24px; + background: #fff; + border: 1px solid #dadada; + border-top: none; + width: 183px; + max-height: 600px; + overflow:auto; + z-index: 1; +} +div.lichess_language.toggled a.toggle { + background: #fff; +} +div.lichess_language.toggled ul.lichess_language_links { + display: block; +} +ul.lichess_language_links a { + display: block; + padding: 0.4em 0.5em; + text-decoration: none; + text-transform: capitalize; +} +ul.lichess_language_links a:hover { + background: #F0F0F0; + color: #444; +} +ul.lichess_language_links li:last-child { + border-top: 1px solid #ddd; +} +#top a.colorpicker { + float: right; + color: #fff; + margin-top: 4px; + display: block; + padding: 1px 5px; + text-decoration: none; +} +a#sound_state { + float: right; +} +a#sound_state span { + margin-top: 4px; + width: 18px; + height: 15px; + opacity: 0.7; + background: url(../images/s16.png) no-repeat; + display: block; +} +a#sound_state.sound_state_on span { + background-position: 0 -80px; +} +a#sound_state.sound_state_off span { + background-position: 0 -64px; +} +a#sound_state.unavailable { + display: none; +} + +a.user_link { + padding-left: 20px; + background: transparent url(../images/s16.png) top left no-repeat; + background-position: 0 -160px; + line-height: 16px; +} +a.user_link.online { + background-position: 0 -208px; +} +div.engine_warning { + padding: 5px 5px 5px 40px; + background: #f2dede url(../images/engine_big.png) 8px 5px no-repeat; + line-height: 16px; + border: 1px solid #eed3d7; + color: #894a48; + width: 240px; + margin-bottom: 15px; +} +div.ui-tooltip div.engine_warning { + margin: 10px 0 10px 5px; + width: auto; + background-position: 8px 0px; +} + +span.engine_mark { + display: inline-block; + width: 16px; + height: 16px; + background: transparent url(../images/engine_small.png) top left no-repeat; + opacity: 0.8; + vertical-align: bottom; +} +div.translation_block { + margin-top: 1em; + padding: 0.5em; + background: #FFEEB1; + border: 1px solid #ECD688; + position: relative; +} +div.translation_block span.percent { + font-size: 18px; + display: block; + float: left; + margin-right: 5px; +} +div.translation_block span.name { + font-weight: bold; + display: block; +} +div.translation_block a.contribute { + display: block; + text-align: center; + padding: 0.2em 0; +} +div.translation_block a.close { + position: absolute; + top: 1px; + right: 4px; + text-decoration: none; +} +div.locale_adjust { + margin: 12px 0; +} + +div.lichess_social { + height: 25px; + text-align: center; +} +div.lichess_social > div { + display: inline; +} +div.lichess_social div.addtochrome { + display: none; + margin-bottom: 15px; +} +div.lichess_facebook iframe { + border:none; + width: 110px; + height: 22px; + margin-left: 5px; + overflow: hidden; + background: transparent; +} + +/* soft inactive gradient */ +#top, div.lichess_chat_top, div.undertable_top, .button, .button:visited, .ui-state-default, div.content_box_top, div.hooks tr { + color: #666; + background: #fafafa; + background: -moz-linear-gradient(center top , #fafafa, #dadada) repeat scroll 0 0 #fafafa; + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#fafafa), to(#dadada)); + background: -webkit-linear-gradient(top , #fafafa, #dadada) repeat scroll 0 0 #fafafa; + background: -ms-linear-gradient(top , #fafafa, #dadada) repeat scroll 0 0 #fafafa; + background: -o-linear-gradient(top , #fafafa, #dadada) repeat scroll 0 0 #fafafa; + background: linear-gradient(top , #fafafa, #dadada) repeat scroll 0 0 #fafafa; +} + +/* active gradient */ +#top a.goto_nav.active, .button.active, .button:hover, .ui-state-active, .ui-widget-header, div.pagination span.current, a.goto_message span.new_messages.unread, div.hooks td.action:hover, div.hooks table.empty_table tr:hover { + color: #fff; + background: #d85000; + background: -moz-linear-gradient(center top , #f49c00, #d85000) repeat scroll 0 0 #d85000; + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#f49c00), to(#d85000)); + background: -webkit-linear-gradient(top , #f49c00, #d85000) repeat scroll 0 0 #d85000; + background: -ms-linear-gradient(top , #f49c00, #d85000) repeat scroll 0 0 #d85000; + background: -o-linear-gradient(top , #f49c00, #d85000) repeat scroll 0 0 #d85000; + background: linear-gradient(top , #f49c00, #d85000) repeat scroll 0 0 #d85000; +} + +/* strong inactive gradient */ +div.hooks td.action { + background: #ffffff; + background: -moz-linear-gradient(center top , #ffffff, #c0c0c0) repeat scroll 0 0 #ffffff; + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffffff), to(#c0c0c0)); + background: -webkit-linear-gradient(top , #ffffff, #c0c0c0) repeat scroll 0 0 #ffffff; + background: -ms-linear-gradient(top , #ffffff, #c0c0c0) repeat scroll 0 0 #ffffff; + background: -o-linear-gradient(top , #ffffff, #c0c0c0) repeat scroll 0 0 #ffffff; + background: linear-gradient(top , #ffffff, #c0c0c0) repeat scroll 0 0 #ffffff; +} + +/* current gradient */ +#top a.goto_nav.current { + color: #fff; + background: #999; + background: -moz-linear-gradient(center top , #aaa, #999) repeat scroll 0 0 #999; + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#aaa), to(#999)); + background: -webkit-linear-gradient(top , #aaa, #999) repeat scroll 0 0 #999; + background: -ms-linear-gradient(top , #aaa, #999) repeat scroll 0 0 #999; + background: -o-linear-gradient(top , #aaa, #999) repeat scroll 0 0 #999; + background: linear-gradient(top , #aaa, #999) repeat scroll 0 0 #999; +} diff --git a/public/stylesheets/gamelist.css b/public/stylesheets/gamelist.css new file mode 100644 index 0000000000000..f23c9f6b18c0a --- /dev/null +++ b/public/stylesheets/gamelist.css @@ -0,0 +1,140 @@ +#lichess div.content_box h1 { + font-size: 1.8em; + color: #666; + font-weight: normal; + display: inline; +} + +div.current_games_box { + width: 638px; +} + +a.game_list, a.all_games { + margin-left: 2em; +} + +div.game_list { + margin-top: 2em; +} + +div.all_games { + margin-top: 1em; +} + +div.game_row { + display: block; + padding: 1.4em 20px; + height: 190px; + line-height: 1.6em; + border-bottom: 1px solid #eaeaea; + position: relative; +} +div.game_row.even { + background: #f4f4f4; +} +div.game_row div.infos span.win { + color: #00AA00; +} +div.game_row div.infos span.loss { + color: #AA0000; +} +div.game_row a.go_analyse { + position: absolute; + bottom: 16px; + right: 25px; + text-decoration: none; +} +div.game_row span.clock { + background-position: 0 -224px; + padding-bottom: 1px; +} + +table.game_players td { + padding-right: 1em; +} + +div.game_list_inner > div { + float: left; + margin: 0 10px 10px 10px; +} +div.game_list_inner div.vstext { + margin-top: 5px; + font-size: 11px; + text-align: center; + width: 192px; + overflow: hidden; + white-space: nowrap; +} + +.mini_board { + width: 192px; + height: 192px; + position: relative; + display: block; + box-shadow:0 0 5px #444; + -moz-box-shadow:0 0 5px #444; + -webkit-box-shadow:0 0 5px #444; +} +div.all_games a.mini_board { + float: left; + margin: 0 20px 20px 10px; +} + +div.lmcs { + position: absolute; + width: 24px; + height: 24px; +} + +div.lmcs.white { + background: #FFFFFF; +} +div.lmcs.black { + background: #CFCFCF; +} + +div.lcmp { + position: absolute; + width: 24px; + height: 24px; + background-image: url(../images/sprite_mini.png); +} + +div.lcmp.pawn.white{ + background-position: 0 0; +} +div.lcmp.bishop.white{ + background-position: -24px 0; +} +div.lcmp.knight.white{ + background-position: -48px 0; +} +div.lcmp.rook.white{ + background-position: -72px 0; +} +div.lcmp.queen.white{ + background-position: -96px 0; +} +div.lcmp.king.white{ + background-position: -120px 0; +} + +div.lcmp.pawn.black{ + background-position: 0px bottom; +} +div.lcmp.bishop.black{ + background-position: -24px bottom; +} +div.lcmp.knight.black{ + background-position: -48px bottom; +} +div.lcmp.rook.black{ + background-position: -72px bottom; +} +div.lcmp.queen.black{ + background-position: -96px bottom; +} +div.lcmp.king.black{ + background-position: -120px bottom; +} + diff --git a/public/stylesheets/gamestats.css b/public/stylesheets/gamestats.css new file mode 100644 index 0000000000000..bd01a1bb24b4a --- /dev/null +++ b/public/stylesheets/gamestats.css @@ -0,0 +1,30 @@ +.title { + font-size: 1.8em; + color: #666; + font-weight: normal; + margin-bottom: 0.5em; +} +.section-title { + font-size: 1.6em; + color: #999; + font-weight: normal; + font-style: italic; + margin: 1.5em 0; + border-top: 1px solid #dadada; + padding: 0.5em 0; + text-align: right; +} +.chart-title { + font-size: 1.4em; + color: #666; + font-weight: normal; + margin-bottom: 0.5em; +} +.half { + float: left; + width: 49%; + margin-right: 2%; +} +.half.last { + margin-right: 0; +} diff --git a/public/stylesheets/hook.css b/public/stylesheets/hook.css new file mode 100644 index 0000000000000..5a28e025cc130 --- /dev/null +++ b/public/stylesheets/hook.css @@ -0,0 +1,123 @@ +div.hooks_wrap { + position: absolute; + width: 384px; + height: 384px; + top: 51px; + left: 52px; + padding: 12px; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + box-shadow: 0 0 20px #444; + -moz-box-shadow: 0 0 20px #444; + -webkit-box-shadow: 0 0 20px #444; + background: rgba(245,245,245,0.8); + background: -moz-linear-gradient(top, rgba(212,212,212,0.9) 0%, rgba(240,240,240,0.5) 100%); + background: -webkit-linear-gradient(top, rgba(212,212,212,0.9) 0%,rgba(240,240,240,0.5) 100%); + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(212,212,212,0.9)), to(rgba(240,240,240,0.5))); + background: -ms-linear-gradient(top, rgba(212,212,212,0.9) 0%,rgba(240,240,240,0.5) 100%); + background: -o-linear-gradient(top, rgba(212,212,212,0.9) 0%,rgba(240,240,240,0.5) 100%); +} +div.hooks_wrap.large { + height: 512px; + top: -13px; +} + +div.hooks_wrap.hidden { + display: none; +} +div.hooks { + border: 1px solid #bababa; + border-top: 0 +} +div.hooks table { + width: 100%; + max-height: 424px; + overflow: hidden; + text-align: left; + border-collapse: collapse; + background: none; + color: #666; + border-top: 1px solid #bababa; +} +div.hooks table a { + color: #666; +} +div.hooks table.empty_table { + margin-top: 152px; +} +div.hooks td { + padding: 0 8px 0 12px; + height: 64px; + margin: 0; +} +div.hooks tr:last-child td { + border-bottom: none; +} +div.hooks table.empty_table tr { + text-align: center; + cursor: pointer; +} +div.hooks table.empty_table td { + padding: 0; + height: 80px; +} +div.hooks td.color { + width: 24px; + padding-right: 0; +} +div.hooks td.color span { + height: 24px; + width: 24px; + display: block; + background: url(../images/sprite_color_24.png) no-repeat; +} +div.hooks td.color span.black { + background-position: 0 -24px; +} +div.hooks td.color span.random { + background-position: 0 -49px; +} +div.hooks span.elorange { + display: block; + font-style: italic; + color: #999; +} +div.hooks span.elorange.nope { + color: #dd8888; +} +div.hooks a.user_link.engine { + color: #cc7070; +} +div.hooks td.action { + cursor: pointer; + border-left: 1px solid #cacaca; + width: 63px; + padding: 0; +} +div.hooks td.action.empty { + cursor: default; + background: none; +} +div.hooks a.cancel, +div.hooks a.join { + height: 32px; + width: 31px; + display: block; + padding: 12px 14px; +} +div.hooks a.cancel { + background: url(../images/close24.png) +16px no-repeat; +} +div.hooks a.join { + background: url(../images/play32.png) +16px no-repeat; +} +div.hooks tr.my_hook { + color: #405090; + background: #c9dbee; +} + +div.hooks a.user_link { + background: transparent; + padding-left: 0; +} diff --git a/public/stylesheets/jquery-ui.css b/public/stylesheets/jquery-ui.css new file mode 100644 index 0000000000000..8bec8b6e71607 --- /dev/null +++ b/public/stylesheets/jquery-ui.css @@ -0,0 +1,85 @@ +/* button */ +.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } +.ui-state-default { + border: 1px solid #d3d3d3; +} +.ui-state-default.ui-state-hover { + border-color: #aaa; +} +button.ui-state-hover { + box-shadow: 0 0 9px #d85000; + -moz-box-shadow: 0 0 9px #d85000; + -webkit-box-shadow: 0 0 9px #d85000; +} +.ui-state-active { + border: 1px solid #d85000; +} +.ui-state-active.ui-state-hover { + border-color: #984000; +} + +/* defaults */ +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } + +/*button sets*/ +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* Corner radius */ +.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ + +ul.ui-autocomplete { + width: 200px; + background: #FAFAFA; + border: 1px solid #DADADA; + max-height: 200px; + overflow: auto; +} +ul.ui-autocomplete li a { + display: block; + padding: 0.6em 1em; + text-decoration: none; +} +ul.ui-autocomplete li a.ui-state-hover { + background: #E1F6F8; + color: #444; +} + +/* slider */ +.ui-widget-content { + border: 1px solid #DDD; + background: #EEE; + color: #333; +} +.ui-widget-header { + border: 1px solid #E78F08; + color: white; + font-weight: bold; +} +.ui-slider { background: #fff; position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; } diff --git a/public/stylesheets/opening.css b/public/stylesheets/opening.css new file mode 100644 index 0000000000000..f42da282b81a9 --- /dev/null +++ b/public/stylesheets/opening.css @@ -0,0 +1,65 @@ +div.game_config h2, div.game_config button { + font-size: 1.4em; + padding: 0 2em; +} +div.game_config button { + letter-spacing: 1px; +} + +div.game_config h2 { + margin-bottom: 1em; +} +div.game_config div.ui-buttonset { + margin-bottom: 1em; +} +div.game_config div.ui-slider { + font-size: 1.3em; + margin: 0 15px; +} +div.game_config .optional_config { + background: #f4f4f4; + margin-bottom: 1em; + padding: 3px 0; + border-top: solid 1px #e4e4e4; + border-bottom: solid 1px #e4e4e4; +} +div.game_config .time_choice, +div.game_config .increment_choice, +div.game_config .elo_range_config { + padding-bottom: 1em; + text-align: left; + text-indent: 15px; +} +div.game_config .time_choice span { + font-weight: bold; +} +div.game_config .clock_config label { + cursor: pointer; +} +div.game_config button.submit { + margin-top: 0.5em; +} +div.game_config div.color_submits { + margin-top: 1em; + margin-left: 18px; + height: 65px; +} +div.game_config div.color_submits button.submit { + float: left; + width: 80px; + height: 65px; + padding: 5px 14px; + margin: 0 5px; +} +div.game_config div.color_submits button.submit span { + background: url(../images/sprite_color.png) no-repeat; + width: 50px; + height: 51px; + padding: 0; +} +div.game_config div.color_submits button.black span { + background-position: 0 -51px; +} +div.game_config div.color_submits button.random span { + background-position: 0 -102px; +} diff --git a/public/stylesheets/reset.css b/public/stylesheets/reset.css new file mode 100755 index 0000000000000..75ecb4c8b3987 --- /dev/null +++ b/public/stylesheets/reset.css @@ -0,0 +1,8 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.3.0 +build: 3167 +*/ +html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;} diff --git a/public/stylesheets/share.css b/public/stylesheets/share.css new file mode 100644 index 0000000000000..c5003ae7837bc --- /dev/null +++ b/public/stylesheets/share.css @@ -0,0 +1,42 @@ +div.game_share { + margin-top: 30px; + width: 512px; + box-shadow: 0 0 7px #d0d0d0; + -moz-box-shadow: 0 0 7px #d0d0d0; + -webkit-box-shadow: 0 0 7px #d0d0d0; + border: 1px solid #c0c0c0; + border-radius: 5px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; +} +div.game_share_top { + width: 92%; + height: 25px; + padding: 10px 4% 6px 4%; +} +div.game_share_top a.game_permalink { + float: left; + display: block; + margin-top: 3px; +} + +div.game_share_widgets { + float: right; + opacity: 0.7; + width: 270px; +} +div.game_share_widgets:hover { + opacity: 1; +} +div.game_share_widgets > div { + float: right; + display: none; + margin-left: 10px; +} +div.game_share_widgets iframe, div.game_share_widgets div.lichess_plusone > div { + max-width: 70px; +} +div.game_share_widgets.loaded > div { + display: block; +} + diff --git a/public/stylesheets/tipsy.css b/public/stylesheets/tipsy.css new file mode 100644 index 0000000000000..b6c1307eef678 --- /dev/null +++ b/public/stylesheets/tipsy.css @@ -0,0 +1,13 @@ +/* tipsy */ +.tipsy { padding: 5px; font-size: 10px; position: absolute; z-index: 100000; text-shadow: none; } +.tipsy-inner { padding: 5px 8px 4px 8px; background-color: black; color: white; max-width: 200px; text-align: center; } +.tipsy-inner { border-radius: 3px; -moz-border-radius:3px; -webkit-border-radius:3px; } +.tipsy-arrow { position: absolute; background: url('../vendor/tipsy/images/tipsy.gif') no-repeat top left; width: 9px; height: 5px; } +.tipsy-n .tipsy-arrow { top: 0; left: 50%; margin-left: -4px; } +.tipsy-nw .tipsy-arrow { top: 0; left: 10px; } +.tipsy-ne .tipsy-arrow { top: 0; right: 10px; } +.tipsy-s .tipsy-arrow { bottom: 0; left: 50%; margin-left: -4px; background-position: bottom left; } +.tipsy-sw .tipsy-arrow { bottom: 0; left: 10px; background-position: bottom left; } +.tipsy-se .tipsy-arrow { bottom: 0; right: 10px; background-position: bottom left; } +.tipsy-e .tipsy-arrow { top: 50%; margin-top: -4px; right: 0; width: 5px; height: 9px; background-position: top right; } +.tipsy-w .tipsy-arrow { top: 50%; margin-top: -4px; left: 0; width: 5px; height: 9px; } diff --git a/public/stylesheets/tooltip.css b/public/stylesheets/tooltip.css new file mode 100644 index 0000000000000..1187cdf2daa14 --- /dev/null +++ b/public/stylesheets/tooltip.css @@ -0,0 +1,67 @@ +/* Core qTip styles */ +div.ui-tooltip { + position: absolute; + left: -28000px; + top: -28000px; + display: none; + width: 500px; +} +div.ui-tooltip div.title { + font-size: 1.2em; +} +div.ui-tooltip .stats { + margin-left: 1em; +} +div.ui-tooltip div.title a.user_link{ + font-weight: bold; +} +div.ui-tooltip div.elo_with_me { + font-size: 1.2em; + padding: 3px 10px; + background: #fff; + border: 1px solid #eaeaea; + margin: 10px 0 0 5px; +} +div.ui-tooltip div.game_row { + padding: 10px 5px 10px 5px; + border-bottom: 0; +} +div.ui-tooltip a.mini_board { + float: left; + margin: 0 10px 0 0; + box-shadow: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + border: 1px solid #bbb; +} +div.ui-tooltip div.infos { + font-size: 12px; +} + +/* Fluid class for determining actual width in IE */ +div.ui-tooltip-fluid{ + display: block; + visibility: hidden; + position: static !important; + float: left !important; +} + +div.ui-tooltip-content{ + position: relative; + padding: 5px 9px; + overflow: hidden; + + text-align: left; + word-wrap: break-word; + overflow: hidden; + + border-color: #ddd; + background-color: #fffaea; + color: #666; + box-shadow: 0 0 9px #888; + -moz-box-shadow: 0 0 9px #888; + -webkit-box-shadow: 0 0 9px #888; + border-radius: 5px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; +} diff --git a/public/stylesheets/translation.css b/public/stylesheets/translation.css new file mode 100644 index 0000000000000..e5185a1ccdae2 --- /dev/null +++ b/public/stylesheets/translation.css @@ -0,0 +1,118 @@ +#lichess div.lichess_box { + width: auto; +} + +div.field { + margin: 1em 0; +} + +#lichess_translation_form_yaml { + width: 100%; + height: 30em; + font-size: 1.1em; +} + +div.field input { + width: 30em; +} + +div.locale_menu { + margin-top: 2em; +} +div.locale_menu a { + display: block; + float: left; + padding: 0.5em 1em; + border: 1px solid #dadada; + margin-right: 1em; + text-decoration: none; + border-radius:4px 4px 4px 4px; + -moz-border-radius:4px 4px 4px 4px; + -webkit-border-radius:4px 4px 4px 4px; + color: #666; + background: #fafafa; + background: -moz-linear-gradient(center top , #fafafa, #dadada) repeat scroll 0 0 #fafafa; + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#fafafa), to(#dadada)); + background: -webkit-linear-gradient(top , #fafafa, #dadada) repeat scroll 0 0 #fafafa; + background: -ms-linear-gradient(top , #fafafa, #dadada) repeat scroll 0 0 #fafafa; + background: -o-linear-gradient(top , #fafafa, #dadada) repeat scroll 0 0 #fafafa; + background: linear-gradient(top , #fafafa, #dadada) repeat scroll 0 0 #fafafa; +} +div.locale_menu a:hover { + box-shadow: 0 0 9px #d85000; + -moz-box-shadow: 0 0 9px #d85000; + -webkit-box-shadow: 0 0 9px #d85000; +} +div.locale_menu a.active { + border: 1px solid #bc6000; + background: #222266; + color: #fff; + background: -moz-linear-gradient(center top , #f49c00, #d85000) repeat scroll 0 0 #d85000; + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#f49c00), to(#d85000)); + background: -webkit-linear-gradient(top , #f49c00, #d85000) repeat scroll 0 0 #d85000; + background: -ms-linear-gradient(top , #f49c00, #d85000) repeat scroll 0 0 #d85000; + background: -o-linear-gradient(top , #f49c00, #d85000) repeat scroll 0 0 #d85000; + background: linear-gradient(top , #f49c00, #d85000) repeat scroll 0 0 #d85000; +} +.translation_title { + margin-top: 1em; + font-size: 2em; +} + +.notice, .error { + margin: 1em; + padding: 1em; + text-align: center; + font-size: 1.2em; + border: 1px solid #DADADA; + color: #000; +} +.notice { + background: #AAFFAA; +} +.error { + background: #FFAAAA; +} + +.translation_list h2 { + font-size: 1.5em; + margin-top: 1em; + text-align: center; +} +.translation_list h3 { + font-size: 1.8em; +} +.translation_pre { + max-height: 200px; overflow: auto; border: 1px solid #CCC; margin-bottom: 2em; + background: white; +} +div.messages { + margin-bottom:1em; + border-bottom: 1px solid #dadada; + padding-bottom: 1em; +} +div.message { + margin-top:1em; + border-top: 1px solid #dadada; + padding-top: 1em; + font-size: 1.2em; +} +div.message label { + display: block; + color: #444; + margin-left: 9%; +} +div.message input { + width: 90%; + margin-left: 9%; + padding: 2px 5px; + color: #888; +} +div.message input:focus { + color: #444; +} +div.message .number { + float: left; + margin-top: 5px; + display: block; +} diff --git a/public/stylesheets/wiki.css b/public/stylesheets/wiki.css new file mode 100644 index 0000000000000..9ac4d27343de3 --- /dev/null +++ b/public/stylesheets/wiki.css @@ -0,0 +1,36 @@ +#wiki h1 { + font-size: 1.8em; + color: #666; + font-weight: normal; +} + +#wiki .body { + margin-top: 2em; + text-align: left; + min-height: 400px; +} +#wiki div.wiki_box { + text-align: center; + font-size: 1.1em; +} +#wiki div.wiki_box em { + font-style: italic; +} + +#wiki div.wiki_box li { + list-style: disc inside; + margin-left: 1em; +} + +#wiki div.wiki_box p { + margin: 1em; +} + +div.sidebar { + margin-top: 30px; +} +div.sidebar a { + display: block; + font-size: 1.2em; + padding: 0.5em 0 0.5em 0; +}